• Авторизация


Сколько памяти на хипе заuмет Object (то есть 23-12-2004 18:18 к комментариям - к полной версии - понравилось!


Сколько памяти на хипе заuмет Object (то есть полученныж как Object object = new Object()) . Сколко памяти нужно на объект если он содержит поле типа byte (boolean, int, long, double, float)?
а так проверяем:


class MemoryTest
{
public long calculateMemoryUsage(ObjectFactory factory)
{
Object handle = factory.makeObject();
long mem0 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
long mem1 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
handle = null;
System.gc(); System.gc(); System.gc(); System.gc();
System.gc(); System.gc(); System.gc(); System.gc();
System.gc(); System.gc(); System.gc(); System.gc();
System.gc(); System.gc(); System.gc(); System.gc();

mem0 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
handle = factory.makeObject();

mem1 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
return mem1 - mem0;
}

public void showMemoryUsage(ObjectFactory factory)
{
long mem = calculateMemoryUsage(factory);
System.out.println( factory.getClass().getName() + " produced "
+ factory.makeObject().getClass().getName() +
" which took " + mem + " bytes");
}
}

interface ObjectFactory
{
public Object makeObject();
}

public class Test
{
public static void main(String [] args)
{
MemoryTest mt = new MemoryTest();
mt.showMemoryUsage(new MyFactory());
}
}

class MyFactory implements ObjectFactory
{
private static class MyObject
{
boolean b;
}

public Object makeObject()
{
return new MyObject();
}
}
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Сколько памяти на хипе заuмет Object (то есть | yaorange - Некоторые проявления неких внутренних форм. | Лента друзей yaorange / Полная версия Добавить в друзья Страницы: раньше»