Tengo algunos problemas para obtener el tamaño de un objeto en JVM. JDK 5 ofrece una interfaz Instrumentation
para calcular a través de la función premain()
, pero no sé cómo usarla.JVM getObjectSize example
¿Alguien me puede ayudar?
Tengo algunos problemas para obtener el tamaño de un objeto en JVM. JDK 5 ofrece una interfaz Instrumentation
para calcular a través de la función premain()
, pero no sé cómo usarla.JVM getObjectSize example
¿Alguien me puede ayudar?
la más simple y la solución más eficiente es el uso de muy pequeña biblioteca sizeof
<dependency>
<groupId>com.carrotsearch</groupId>
<artifactId>java-sizeof</artifactId>
<version>0.0.3</version>
</dependency>
es necesario utilizar este http://grepcode.com/file/repo1.maven.org/maven2/com.carrotsearch/java-sizeof/0.0.2/com/carrotsearch/sizeof/RamUsageEstimator.java?av=f
shallowSizeOf() método o sizeof()
Esa es realmente la solución rápida más simple que he encontrado sobre este tema hasta ahora ...
Aquí está la presentación del autor de esta biblioteca: http://www.slideshare.net/DawidWeiss /sizeofobject-how-much-memory-objects-take-on-jvms-and-when-this-may-matter?ref=http://cheremin.blogspot.com/2012/05/how-much-memory-objects -take-on-jvm-and.html –
Las fuentes están aquí: https://github.com/dweiss/java-sizeof –
gracias funciona – fleture
Aquí tenemos un muy buen artículo de Dustin Marx que puede referirse usted.
Puede que le resulte útil usar la MemoryMeasurer library, que empaqueta la medición simple de memoria en una API relativamente sencillo. (Alternativamente, se puede ver en su código fuente para ver cómo se utiliza la instrumentación.)
Otro proyecto de código abierto que puede ayudarlo es Jamm que también utiliza un agente JVM.
Es probable que el uso de un generador de perfiles de memoria sea una forma mucho más sencilla de hacerlo (para lo que está diseñado) –