Как проанализировать файл. hprof?



У меня есть рабочий сервер, работающий со следующим флагом: - XX:+HeapDumpOnOutOfMemoryError



вчера вечером он сгенерировал java-38942.файл hprof, когда наш сервер обнаружил ошибку в кучу. Оказывается, разработчики системы знали о флаге, но никак не могли получить от него никакой полезной информации.



какие идеи?

475   6  

6 ответов:

Если вы хотите довольно продвинутый инструмент, чтобы сделать некоторые серьезные ковыряться, посмотри проект анализатора памяти в Eclipse, внесенный в них SAP.

некоторые из того, что вы можете сделать, умопомрачительно хороши для поиска утечек памяти и т. д., включая запуск формы ограниченного SQL (OQL) против объектов в памяти, т. е.

выберите toString (firstName) из com.ваша компания.somepackage.Пользователь

просто гениально.

можно использовать JHAT, инструмент анализа кучи Java, предоставляемый по умолчанию с JDK. Это командная строка, но запускает веб-сервер / браузер, который вы используете для проверки памяти. Не самый удобный, но, по крайней мере, он уже установлен в большинстве мест ты пойдешь. Очень полезным видом является ссылка "гистограмма кучи" в самом низу.

ex:jhat -port 7401 -J-Xmx4G dump.hprof

jhat может выполнять OQL "в эти дни", а также (нижняя ссылка "выполнить OQL")

вы также можете использовать HeapWalker из профилировщика Netbeans или Visual VM изолированный инструмент. Visual VM является хорошей альтернативой JHAT, поскольку он стоит отдельно, но гораздо проще в использовании, чем JHAT.

вам нужна Java 6+, чтобы полностью использовать Visual VM.

просто Анализатор Памяти Eclipse. Там нет ничего лучше, и это бесплатно.

Она может быть использована только для "игрушек"

Yourkit Java Profiler, кажется, обрабатывает их тоже.

Если вы хотите сделать пользовательский анализ вашего heapdump, то есть:

эта библиотека работает быстро, но вам нужно будет написать свой код анализа на Java.

документы:

  • не создает никаких временных файлов на диске для обработки дампа кучи
  • смогите работать сразу ГЗ сжатые дампы "кучи"
  • нотации HeapPath

Comments

    Ничего не найдено.