Próbuję napisać po prostu klasę ObjectUtils
zawierającą różne metody użytkowe dla wszystkich obiektów. Chciałbym mieć jeden z nich nazywa getObjectSize(Object)
gdzie przekazać mu instancja Object i zwraca rozmiar obiektu w pamięci:Jak uzyskać instancję oprzyrządowania w Javie
public class ObjectUtils {
private static volatile Instrumentation instrumentation;
public static final long getObjectSize(final Object p_oToGauge)
{
return instrumentation.getObjectSize(p_oToGauge);
}
}
Wydaje się jednak, że w celu uzyskania wdrożony Instrumentation
instancji, trzeba rób różne fantazyjne rzeczy za pomocą agentów JRE i tak zwaną metodę premain
.
Czy istnieje łatwy sposób uzyskania dostępu do lokalnych instancji JRE Instrumentation
? Szukałem czegoś przez interfejs API Runtime
, ale nic nie mogłem znaleźć.
Ja myślę, że nie ma. Będziesz musiał zrobić fantazyjne rzeczy. –
Odkopałem ten post od Alexa Snapsa, który może ci się przydać: http://www.codespot.net/blog/2012/01/measuring-java-object-sizes/ –