2011-02-07 1 views
4

Я тестировал свой webapp локально на своем компьютере и контролировал его с помощью VisualVM. Недавно я также начал использовать JMeter, так как мне было предложено провести нагрузочное тестирование, поскольку я подозревал, что у меня медленная утечка памяти.OutOfMemory Exception - как VisualVM поможет найти утечку памяти с помощью файла heapdump?

Сегодня мой webapp, наконец, выбрал исключение OutOfMemory. У меня были параметры HeapDumpOnOutOfMemoryError и HeapDumpPath, если это произошло. Создан файл дампа кучи.

Я открыл этот файл (java_pid2760.hprof) в VisualVM, и если честно, я не понимаю, как я должен быть в состоянии точно определить виновника этой утечки памяти ...

Как вам использовать VisualVM для анализа дампа кучи и найти класс/экземпляр, который генерирует утечку памяти?

+0

Возможный дубликат [Как проанализировать файл .hprof?] (http://stackoverflow.com/questions/185893/how-do-i-analyze-a-hprof-file) – meriton

+0

также связан: http://stackoverflow.com/questions/2064456/how-much-memory-do-jprofiler-need-to-analysis-a-heap-dump-of-size-x , http://stackoverflow.com/questions/1795778/are-there- инструменты-to-analysis-large-java-heap-dumps-without-load-the-complete-hpr, http://stackoverflow.com/questions/2422868/how-to-analyze-heap-dumps – meriton

+0

Мой вопрос был направлен при использовании VisualVM для определения утечки памяти. Этот продукт, который поставляется вместе с JDK, должен уметь, нет? Я ценю предложения использовать другие типы программного обеспечения, но поскольку у меня есть VisualVM, я бы хотел придерживаться его. Кто-нибудь использовал VisualVM для обнаружения утечки памяти? – katura

ответ

1

Использование VisualVM для анализа дампов кучи и утечек памяти pin-point непросто, и я бы не рекомендовал использовать этот инструмент, если вы впервые работаете над этим типом проблемы. Подумайте о загрузке HPjmeter и дайте ему сделать работу за вас.

После открытия файла дампа выберите опцию «Отсеченный ссылочный график». Это покажет вам все объекты в вашем webapp, отсортированные по размеру. В большинстве сценариев утечки памяти вы просачиваете один тип объектов, которые накладывают воздушные шары со временем в кучу. HPjmeter поможет вам быстро определить этот случай.

+0

@ Amir Afghan - Я не думаю, что могу использовать HPjmeter, так как у меня нет системы HP. Это программное обеспечение предназначено для использования в системах HP-UX 11i. – katura

+0

Да, вы можете. Консоль HPjmeter - это Java-программа. Вы можете запустить его в любой системе. –

+0

Не удалось установить его на Windows 8.1. После того, как googling обнаружил, что он несовместим с этой версией Windows. – Lu55