Как я могу использовать Eclipse Memory Analyzer Tool для выгрузки кучи из запущенного процесса?

Я создал простое консольное приложение, которое я запускаю из Eclipse (щелкнув правой кнопкой мыши по файлу и выбрав команду "Запустить как приложение Java"). Я застрял там в спящем режиме, чтобы убедиться, что процесс все еще работает, когда я запускаю диалоговое окно дампа кучи Aquire. Я запускаю диалоговое окно, нажимаю кнопку Обновить, и в списке нет локальных процессов.

Я проверил журнал ошибок Eclipse, и он только сообщает, что у него были проблемы со списком процессов IBM VM (HPROF один настроен и работает нормально.)

Что я делаю неправильно?

2 ответа

Почему бы не создать дамп кучи из кода вашей программы?

https://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java

Или когда это сталкивается с проблемами безопасности отсюда: создайте дамп кучи изнутри приложения, без HotSpotDiagnosticMXBean

Я использовал это, чтобы получить дамп кучи после фиксированного числа итераций в моих тестах JUnit, все, что осталось сделать, это открыть дампы в Eclipse MAT и найти причину утечки памяти:-(

Я столкнулся с той же проблемой, и после поиска в Google, я нашел это решение.

Укажите путь jdk в "Получить дамп заголовка" -> "Настроить..." -> Выбрать "HPROF jmap dump provider" -> "-jdkhome" -> speficy jdk path по умолчанию это должно быть "C:\Program Files\Java" \jdk1.8.0_102"или ваше местоположение jdk.

Я надеюсь, что это работает для вас.

Другие вопросы по тегам