Дамп кучи JVM для объектов без ссылок - PullRequest
3 голосов
/ 07 ноября 2010

У меня есть приложение, которое использует намного больше, чем ожидалось, объекты с коротким сроком службы, это вызывает серьезные проблемы с производительностью, которые мне нужно решить.Чтобы дать вам представление о масштабе проблемы, пространство Eden подскочило с 200 МБ до 1800 МБ за 10 секунд, прежде чем сборка мусора снова запустится и вернет Eden обратно.Я взял 2 дампа кучи, один сразу после GC и один перед следующим запуском.Я хочу проанализировать их и посмотреть, что представляют собой объекты без ссылок, чтобы я мог найти источник проблемы, однако, когда я загружаю дампы кучи либо в затмение, либо в netbeans, оба, кажется, удаляют данные, связанные с объектами, на которые нет ссылок, и просто показывают200mb ссылочных объектов в приложении в то время.Кто-нибудь знает какой-нибудь инструмент / способ для меня, чтобы проанализировать дамп кучи, чтобы увидеть, что это за объекты, на которые нет ссылок?

Спасибо,

Джеймс

Ответы [ 4 ]

2 голосов
/ 07 ноября 2010

В прошлый раз, когда я отлаживал такую ​​проблему, я использовал http://www.yourkit.com/, которая мне очень помогла.

1 голос
/ 17 ноября 2010

Возможно Гистограмма недоступных объектов доступна в Анализатор памяти Eclipse может помочь вам. Вы также можете попробовать включить -keep_unreachable_objects, как указано в FAQ.

1 голос
/ 07 ноября 2010

Мне удалось отследить множество проблем, связанных с кучей, с помощью IBM Heap Analzyer

Но я предполагаю, что для его использования вам нужно запустить IBM SDK, номожет, стоит попробовать?

1 голос
/ 07 ноября 2010

Я не знаю инструмента для анализа дампов кучи, но jvisualvm , который поставляется с дистрибутивом jdk, имеет довольно хороший профилировщик памяти, который я использовал для устранения подобных проблем.Он должен быть в вашем каталоге jdk bin.

...