Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Просмотр Old generation / 10 сообщений из 10, страница 1 из 1
25.09.2012, 20:07:30
    #37971965
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Можно ли как-то узнать что за объекты лежат в Old Generation? В VisualGC вижу только графики, а хочется узнать что за объекты его переполняют.
...
Рейтинг: 0 / 0
25.09.2012, 21:08:35
    #37972030
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Почему именно Tenured? JDK/bin/jvisualvm - запускаем, подсоединяемся к существующему Java процессу. Делаем дамп кучи, анализируем.
...
Рейтинг: 0 / 0
26.09.2012, 04:44:10
    #37972271
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Blazkowicz,

При выполнении кода связанного с запалнением БД данными падает:
java.lang.OutOfMemoryError: GC overhead limit exceeded

При падении получаю Heap Dump, как в нём понять что именно лежит в Old Gen не ясно. Old gen я хочу про анализировать потому что, локализовав участок кода я вижу что при его исполнении начинает быстро заполнятся OldGen(определяю по графика Visual GC).

Я так понимаю что анализ heap dump делается через OQL , может покажете как отфильтровать по Old gen.
...
Рейтинг: 0 / 0
26.09.2012, 10:14:26
    #37972475
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
GregTkПри выполнении кода связанного с запалнением БД данными падает:
java.lang.OutOfMemoryError: GC overhead limit exceeded
Куча не переполнилась, просто GC работал слишком долго и не смог освободить достаточно места.

GregTkПри падении получаю Heap Dump, как в нём понять что именно лежит в Old Gen не ясно. Old gen я хочу про анализировать потому что, локализовав участок кода я вижу что при его исполнении начинает быстро заполнятся OldGen(определяю по графика Visual GC).

Забудьте про Old Gen. Эта фильтрация вам ничего не даст. Скажу даже более. Если у вас это временные данные, то может имеет смысл просто увеличить Young?

GregTkЯ так понимаю что анализ heap dump делается через OQL , может покажете как отфильтровать по Old gen.
Ненужно ничего фильтровать. Запускаете, открываете дамп и анализируете содержимое памяти
http://visualvm.java.net/heapdump.html
...
Рейтинг: 0 / 0
26.09.2012, 10:23:32
    #37972497
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Blazkowicz,

понятно, но мне не ясно как из например 2 млн. String понять какие именно относятся к моему приложению, грубо говоря если начинать просмотр их содержимого, то вижу вещи вообще не связанные. А можно Instances с группировать по их refernces? Я такого просто в VisualVM не нашел...
...
Рейтинг: 0 / 0
26.09.2012, 10:45:22
    #37972530
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
GregTkпонятно, но мне не ясно как из например 2 млн. String понять какие именно относятся к моему приложению, грубо говоря если начинать просмотр их содержимого, то вижу вещи вообще не связанные. А можно Instances с группировать по их refernces? Я такого просто в VisualVM не нашел...
VisualVM достаточно простой профайлер, возможно нужные вам фичи есть в YourKit или JProfiler.
Но мне хватает VisualVM с головой. Сортируете строки по размеру. Находите несколько тех типичных, из-за которых произходит утечка. Находите их GC Root. Анализируете этот пусть и смотрите какой общий объект держит ссылки.

Можно ещё попробовать Memory Profiler. Он покажет прирост каких объектов произошел на некоторое время. И там вместо String увидите свои сущности, и проанализируете.

Можно отфильтровать по package и смотреть только свои классы, например.
...
Рейтинг: 0 / 0
26.09.2012, 10:45:57
    #37972533
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Если хотите, можете выложить дамп, я посмотрю может что подозрительное увижу.
...
Рейтинг: 0 / 0
26.09.2012, 10:50:25
    #37972543
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Blazkowicz,

Спасибо за наводку, буду сам пытаться. И по возможности задавать тут вопросы, уже 2 ночи убил на поиски утечки памяти, вот сейчас жду heap dump когда выплюнет и буду разбирать его. Одно радует пока искал проблему много узкие места в коде поправил.
...
Рейтинг: 0 / 0
26.09.2012, 11:22:38
    #37972601
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
...
Рейтинг: 0 / 0
26.09.2012, 11:29:24
    #37972608
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просмотр Old generation
Blazkowicz,
ух если мне это поможет, буду писать подробный пост на хабр с картинками. :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Просмотр Old generation / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]