22 votes

Combien d'octets de mémoire utilise un objet java.util.Date ?

Je dois stocker une grande quantité de dates (potentiellement assez importante pour que la quantité d'espace heap utilisée soit une préoccupation donc s'il vous plaît, pas de leçons sur l'optimisation prématurée), et je me demande s'il est judicieux d'utiliser une sorte de représentation primitive au lieu de java.util.Date (ou une autre classe de Date existante). Je sais que je pourrais faire un profilage pour essayer, mais est-ce que quelqu'un sait exactement combien d'octets de mémoire utilise un objet Date unique?

1voto

Sam Points 2858

J'ai essayé un calcul manuel basé sur les règles ici : http://www.javamex.com/tutorials/memory/object_memory_usage.shtml et en vérifiant le code source de l'objet Date en Java 7 pour la consommation de mémoire.

Surcoût d'objet : 8 octets => 8 octets
+ 1 long fastTime : 8 octets => 16 octets
+ 1 référence cdate : 4 octets => 20 octets
Arrondi au multiple de 8 le plus proche => 24 octets

Peut-être ai-je manqué quelque chose dans le calcul ou les outils qui ont été utilisés dans d'autres réponses et qui ont donné un résultat de 32 incluaient les références aux dates elles-mêmes dans le calcul ?

0voto

fmucar Points 6937

Un objet java.util.Date peut être représenté par une valeur longue et une valeur longue est de 8 octets -2^63 à (2^63)-1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X