I ' м пытаюсь определить, есть ли у меня утечка памяти в моем веб-приложении. Я использую VisualVM и JMeter для нагрузочного теста и просмотра кучи.
Я сохранил дамп кучи в файл и вчера загрузил Eclipse Memory Analyzer ... после долгого разочарования в VisualVM я подумал, что Eclipse определит утечку, если таковая имеется, лучше, чем VisualVM.
Я открыл файл кучи в Eclipse и подготовил так называемый Отчет о подозреваемых утечках. Я думал, что это будет указывать на конкретный класс в моем веб-приложении, но это не так. Так что я понятия не имею, как использовать предоставленную информацию, чтобы выяснить, где в каком-то конкретном моем классе находится подозреваемый в утечке.
Вот результаты отчета о подозрении на утечку для одного из моих файлов дампа кучи.
One instance of "org.apache.catalina.session.StandardManager" loaded by "org.apache.catalina.loader.StandardClassLoader @ 0x261bdac0" occupies 16,977,376 (48.54%) bytes. The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]" loaded by "". Keywords org.apache.catalina.loader.StandardClassLoader @ 0x261bdac0 org.apache.catalina.session.StandardManager java.util.concurrent.ConcurrentHashMap$Segment[]
Остальные детали отчета показаны на прикрепленном изображении. Надеюсь, изображение можно расширить для более детального просмотра ....
Я знаю, что Eclipse должна быть действительно хорошей программой. Это моя последняя попытка использовать что-то подобное, чтобы найти утечку памяти - просто у меня очень, очень ограниченные знания о том, КАК это программное обеспечение может быть использовано для этого. На страницах руководства и справки все описывается так, как будто вы должны знать, что делать после нескольких щелчков мышью ... Мне нужна дополнительная помощь.