Я пытаюсь обнаружить утечки памяти в своем Java-приложении с помощью VisualVM. Я использую VisualVM 1.3.5.

Я выполнил шаги, описанные в этом руководстве http: //rejeev.blogspot.in/2009/04/analyzing-memory-leak-in-java.html

Выполнив эти шаги, я не знаю, с чего мне начать редактировать свой код. Есть ли способ найти класс java и номер строки, в которой произошла утечка памяти, чтобы исправить код.

Или кто-нибудь подскажет мне хороший способ найти утечки памяти с помощью VisualVM.

Безусловно, хорошие ответы приветствуются.

1
Human Being 15 Мар 2013 в 15:46

1 ответ

Лучший ответ

Ни один инструмент профилирования не покажет вам строку, в которой возможна утечка памяти.

Профилирование приложения требует немного больше усилий, чем это. Обычно такой инструмент, как VisualVM, например, покажет вам, какие типы объектов создаются чаще всего, и это может указать, в чем проблема.

Например, если создается огромное количество объектов byte [], возможно, вы не закрываете создаваемые потоки ввода / вывода?

Нет серебряной пули для поиска утечек памяти, это требует усилий и некоторой практики и полностью зависит от приложения.

При этом эта ссылка также может помочь:

http://www.kdgregory.com/index.php?page=java.outOfMemory

9
pcalcao 15 Мар 2013 в 15:49
Вы проверили тот tutorial link, который я опубликовал? Это правильный путь?
 – 
Human Being
15 Мар 2013 в 16:25
Эта ссылка кажется полезной для выяснения того, как использовать VisualVM, и дает несколько полезных советов, ссылка, которую я опубликовал, содержит некоторую дополнительную информацию. Я считаю, что это руководство находится на правильном пути.
 – 
pcalcao
15 Мар 2013 в 16:31