Я подозреваю, что у нас есть большая утечка памяти в нашем мосте подключения ActiveMQ - мы наблюдаем типичные шаблоны утечки памяти (приложение загружается нормально, замедляется, если оно работает в течение продолжительных периодов времени или перезапускается снова и снова в течение коротких периодов времени). Я искал современные передовые методы поиска утечек памяти Java, и многие разработчики, похоже, отказываются от традиционных инструментов, таких как jhat/jmap вместо нового (er) jvisualvm
.Как найти утечки памяти с помощью visualvm
После запуска этого инструмента (и, проводя несколько часов, прочитав его учебник), я могу делать снимки профилировщика как для процессора, так и для памяти.
Я просто застрял в этом вопросе - как я могу проанализировать эти снимки, чтобы идентифицировать утечку? Существует множество документации о том, как использовать jvisualvm для создания снимков, но очень мало документации относительно того, как на самом деле их осмыслить.
Заранее спасибо.
Вы пробовали работает [FindBugs] (HTTP : //findbugs.sourceforge.net) через источник? Я нахожу это довольно эффективным при идентификации кода, который может вызвать утечку памяти. – Jivings
Спасибо за предложение - но две вещи: (1) Мне снова и снова говорили, что FindBugs хорош для NullPointerExceptions, но не утечки памяти, и, что более важно, (2) я действительно хочу познакомиться с jvisualvm, поэтому, если это явно не является правильным инструментом для этой работы, мне интересно узнать, как он используется в качестве диагностического инструмента. Еще раз спасибо за хорошее предложение! – IAmYourFaja
Одна мелочь: Инструменты/Плагины/Доступные плагины - установка Visual GC - плагин показывает лучший график вашей памяти кучи и статуса GC. – coolcfan