Я пытаюсь написать просто класс ObjectUtils
, который содержит множество методов утилиты для всех объектов. Я хотел бы иметь один из них называется getObjectSize(Object)
, где вы передаете ему экземпляр объекта и возвращает размер объекта в памяти:Как получить экземпляр инструментария в Java
public class ObjectUtils {
private static volatile Instrumentation instrumentation;
public static final long getObjectSize(final Object p_oToGauge)
{
return instrumentation.getObjectSize(p_oToGauge);
}
}
Тем не менее, кажется, что для того, чтобы получить реализованный Instrumentation
экземпляр, вам нужно делать всевозможные причудливые вещи с помощью агентов JRE и так называемый метод premain
.
Есть ли простой способ получить доступ к локальным экземплярам JRE Instrumentation
? Я искал что-то через API Runtime
, но ничего не мог найти.
I _think_ нет. Тебе придется делать причудливые вещи. –
Я откопал это сообщение от Alex Snaps, что может показаться вам полезным: http://www.codespot.net/blog/2012/01/measuring-java-object-sizes/ –