Ich versuche, eine einfache ObjectUtils
Klasse zu schreiben, die eine Vielzahl von Hilfsmethoden für alle Objekte enthält. Ich möchte einer von ihnen getObjectSize(Object)
genannt haben, wo man ihm ein instanzierte Objekt übergibt, und es gibt die Größe des Objekts im Speicher:So erhalten Sie Instanz von Instrumentation in Java
public class ObjectUtils {
private static volatile Instrumentation instrumentation;
public static final long getObjectSize(final Object p_oToGauge)
{
return instrumentation.getObjectSize(p_oToGauge);
}
}
Allerdings scheint es, dass, um eine implementiertes Instrumentation
Instanz zu erhalten, müssen Sie mache alle möglichen Dinge mit JRE-Agenten und einer sogenannten premain
Methode.
Gibt es eine einfache Möglichkeit, Zugriff auf die lokalen JRE-Instanzen Instrumentation
zu erhalten? Ich suchte über die API Runtime
nach etwas, konnte aber nichts finden.
Ich _think_ gibt es nicht. Du wirst die schicken Sachen machen müssen. –
Ich habe diesen Artikel von Alex Snaps ausgegraben, den Sie vielleicht nützlich finden: http://www.codspot.net/blog/2012/01/measuring-java-object-sizes/ –