Estoy tratando de escribir una clase simplemente ObjectUtils
que contiene una variedad de métodos de utilidad para todos los objetos. Me gustaría tener uno de ellos llamó getObjectSize(Object)
donde se le pasa una instancia de objeto y se devuelve el tamaño del objeto en la memoria:Cómo obtener una instancia de Instrumentación en Java
public class ObjectUtils {
private static volatile Instrumentation instrumentation;
public static final long getObjectSize(final Object p_oToGauge)
{
return instrumentation.getObjectSize(p_oToGauge);
}
}
Sin embargo, parece que con el fin de obtener una implementado Instrumentation
ejemplo, es necesario hacer todo tipo de cosas sofisticadas con los agentes de JRE y un método llamado premain
.
¿Hay una manera fácil de obtener acceso a las instancias locales de JRE Instrumentation
? Busqué algo a través de la API Runtime
pero no pude encontrar nada.
I _think_ there is not. Tendrás que hacer las cosas elegantes. –
Saqué esta publicación de Alex Snaps que podría serle útil: http://www.codespot.net/blog/2012/01/measuring-java-object-sizes/ –