java - método - Requisitos de memoria de una referencia de objeto en una JVM de 64 bits
stack jvm (2)
Una referencia a un Objeto en una JVM de 32 bits (al menos en Hotspot) ocupa 4 bytes.
¿La JVM Hotspot de 64 bits necesita 8 bytes? ¿O está pasando una compresión inteligente? Si no, cada Object[]
requeriría el doble de memoria de pila, lo que de alguna manera pienso (espero, espero) no es el caso.
Actualización / pregunta adicional : ¿esto realmente importa, o es un aumento insignificante, porque la mayoría de las referencias apuntan a objetos que son mucho más grandes que unos pocos bytes (mientras que uno podría argumentar que esos objetos a su vez están compuestos principalmente de referencias a otros objetos)? ?
De acuerdo con el rendimiento de la plataforma Java, no está definido estrictamente, pero normalmente es de 8 bytes en un sistema de 64 bits:
El tamaño de una referencia no está bien definido, pero generalmente es de 4 bytes en un sistema de 32 bits y 8 bytes en un sistema de 64 bits.
En un sistema de 64 bits, las referencias de objetos suelen tener una longitud de 8 bytes. Pero en las JVM recientes de Sun / Oracle, puede habilitar los Oops comprimidos , que reducen el tamaño de referencia a 4 bytes al costo de un límite más pequeño en el tamaño del montón.