openjdk.ruOpenJDK на русском

JEP 240: Remove the JVM TI hprof Agent

Удаление агента hprof для JVM TI

ОтветственныйStaffan Larsen
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск9
Компонентcore-svc / tools
Обсуждениеserviceability dash dev at openjdk dot java dot net
ТрудоёмкостьXS
ДлительностьXS
РецензентыMikael Vidstedt
ОдобренMikael Vidstedt
Создан2014/06/12 05:55
Обновлён2016/06/07 23:48
Задача8046661

Аннотация

Удалить агент hprof из JDK.

Что не является целью

Возможность создавать дампы кучи в формате hprof сохранится.

Мотивация

Полезные функции агента hprof заменены лучшими альтернативами.

Дампы кучи (heap=dump)

Эта функциональность заменена такой же функциональностью в самой JVM. С помощью диагностической команды GC.heap_dump (jcmd <pid> GC.heap_dump) можно запросить у JVM дамп кучи в формате файла hprof (это также доступно через jmap -dump).

Профилировщик выделения памяти (heap=sites)

Такую же функциональность предоставляет инструмент Java VisualVM, а также ряд сторонних профилировщиков.

Профилировщик CPU (cpu=samples, cpu=times)

У профилировщика CPU есть несколько недостатков, которые довольно подробно описаны в http://www.brendangregg.com/blog/2014-06-09/java-cpu-sampling-using-hprof.html и в других источниках. Есть другие инструменты, которые предоставляют лучшую функциональность и имеют меньше проблем. Среди них Java VisualVM и Java Flight Recorder, входящие в состав JDK, а также ряд сторонних профилировщиков.

Демонстрационный код

Агент hprof был написан как демонстрационный код для JVM Tool Interface и не предназначался для использования в качестве рабочего инструмента. Код и документация содержат ряд утверждений следующего вида:

Это демонстрационный код для интерфейса JVM TI и использования BCI, он не является официальным продуктом или формальной частью JDK.

Описание

Прекратить собирать и поставлять библиотеку агента hprof (libhprof.so) в составе JDK.

Перенести код в отдельный проект в рамках OpenJDK. Этот код по-прежнему ценен как демонстрация возможностей JVM TI, но не соответствует требованиям к поставляемому продукту.

Это изменение должно быть задокументировано в соответствующих примечаниях к выпуску. Учитывая обширные оговорки, уже присутствующие в документации, пользователей не должно удивить удаление hprof, но документацию следует обновить, чтобы она указывала на альтернативные инструменты.

Тестирование

Существующие тесты агента hprof нужно будет удалить.