2012-06-13 14 views
7

Estoy estudiando java, y recuerdo haber leído en algún lugar que los objetos de Java, tenían algunos gastos generales dentro de la JVM, que la máquina virtual utilizaba por motivos administrativos. Entonces mi pregunta es, ¿alguien me puede decir si puedo obtener el tamaño total de un objeto en HotSpot JVM y cómo puedo obtenerlo?Más información sobre la sobrecarga de objetos en JVM

+0

posibles duplicados de [¿Cuál es el consumo de memoria de un objeto en Java?] (Http://stackoverflow.com/questions/258120/what-is-the-memory-cons) umption-of-a-object-in-java) –

+0

echó un vistazo a http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in-java ? –

+0

No estoy exactamente preguntando lo mismo. Estoy preguntando sobre la sobrecarga y el tamaño total para poder derivar un porcentaje de la sobrecarga con respecto al tamaño total. – NlightNFotis

Respuesta

9

No puede obtener los gastos generales directamente. La cantidad de sobrecarga depende de la implementación y puede variar en función de una serie de factores (por ejemplo, la versión precisa de JVM y si se encuentra en una JVM de 32 o 64 bits).

Sin embargo, es razonablemente seguro suponer que en las implementaciones modernas típicas de JVM como HotSpot, la sobrecarga por objeto es entre 8 y 16 bytes. Normalmente, las matrices tienen una sobrecarga que es 4 bytes más grande que otros objetos (para contener la longitud del conjunto entero).

Consulte también:

1

me encontré this article más informativa, aunque tenía algunas dudas por algunos de los valores mencionados en las tablas

+0

Tenga en cuenta que las respuestas que solo consisten en un enlace generalmente no se recomiendan; ver http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers. Tal vez podrías resumir partes relevantes del artículo. – sleske

Cuestiones relacionadas