Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

Сколько памяти занимает обьект?

Как узнать сколько занимает памяти ArrayList, или простые object?
Java 1.7-1.8, NetBeans


Ответ

Например, можно использовать package java.lang.instrument
Скомпилируйте этот класс в JAR:
import java.lang.instrument.Instrumentation;
public class ObjectSizeFetcher { private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) { instrumentation = inst; }
public static long getObjectSize(Object o) { return instrumentation.getObjectSize(o); } }
Добавьте следующую строчку в MANIFEST.MF
Premain-Class: ObjectSizeFetcher
Теперь можно использовать getObjectSize
public class C { private int x; private int y;
public static void main(String [] args) { System.out.println(ObjectSizeFetcher.getObjectSize(new C())); } }
Запускается так:
java -javaagent:ObjectSizeFetcherAgent.jar C

Перевод этого ответа с en.SO

Комментариев нет:

Отправить комментарий