Donz ([info]donz_ru) wrote,
@ 2009-04-22 12:57:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:it, java

Написал свой тест памяти и GC
Прочитав вот это: "The Last Java Garbage Collection Guide You Will Ever Need", решил написать свой тест. Естественно, "самый правильный".
Придумал алгоритм учета создаваемых и уничтожаемых объектов без финализаторов, несколько ухищрений, чтобы исключить влияние обвязки теста на показатели памяти. Вроде даже более менее вменяемые результаты получались, пока не решил проверить с финализаторами. Весь тест оказался чушью собачьей. По моим показателям в хипе три тысячи объектов, эталонная проверка через финализаторы говорит, что менее ста.
Сейчас опять есть несколько мыслей, как сделать алгоритм еще хитрее, чтобы "теперь то уж точно оттестить все как надо". Но понимаю, что получится та же самая фигня.
Похоже, если по каким-то причинам необходима тонкая настройка GC, то в исследование подсистемы памяти в яве придется уйти минимум на несколько дней.
Были у кого-нибудь реальные причины тюнить управление памятью? Речь, естественно, не о -Xmx, -Xms. Какие полезные ресурсы посоветуете?




(2 comments) - (Post a new comment)


[info]mkizub
2009-04-23 10:19 am UTC (link)
А как учитывал количество объектов твой алгоритм? Что-то мне на ум приходят только WeakReference и производные от них...

(Reply to this) (Thread)


[info]donz_ru
2009-04-23 10:30 am UTC (link)
Перед циклом создания объектов создавал равный по размеру список дополнительных объектов, которые будут создаваться в цикле. После этого несколько раз System.gc() и замер памяти до начала основного цикла. Так как мои тестируемые объекты были не менее 10Кб, то я решил, что дельта между память до начала цикла и после цикла должна как раз примерно содержать только мои объекты. Естественно, нифига, причем очень сильно нифига.
Да, делал на WeakReference.

(Reply to this) (Parent)


(2 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Log in with OpenID
English • Español • Deutsch • Русский…