Какие инструменты доступны для просмотра выходных данных встроенного профилировщика JVM? Например, я запускаю свою JVM с:
-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt
Генерирует вывод в формате hprof ("JAVA PROFILE 1.0.1").
Я имел успех в прошлом, используя HPjmeter для просмотра этих выходных файлов разумным способом. Однако по какой-либо причине файлы, созданные с использованием текущей версии Sun JVM, не могут быть загружены в текущей версии HPjmeter:
java.lang.NullPointerException
at com.hp.jmeter.f.jb.a(Unknown Source)
at com.hp.jmeter.f.a.a(Unknown Source)
at com.hp.c.a.j.z.run(Unknown Source)
Exception in thread "HPeprofDataFileReaderThread" java.lang.AssertionError: null pointer exception from loader
at com.hp.jmeter.f.a.a(Unknown Source)
at com.hp.c.a.j.z.run(Unknown Source)
(Зачем им запутывать байт-код для бесплатного продукта?!)
Из этого вытекают два вопроса:
- Кто-нибудь знает причину этой ошибки HPjmeter? ( РЕДАКТИРОВАТЬ : Да - см. Ниже )
- Какие существуют другие инструменты для чтения файлов hprof? А почему от Солнца нет (есть)?
Я знаю, что Eclipse TPTP и другие инструменты могут отслеживать данные JVMTI на лету, но мне нужно решение, которое может обрабатывать сгенерированные файлы hprof после того, как развернутая машина имеет только JRE ( JDK).
EDIT : очень полезный разработчик HPjmeter ответил на мой вопрос на форуме HP ITRC , указав, что heap=dump
необходимо временно включить в опции -agentlib
до появления ошибки в HPjmeter исправлен. Эта информация снова делает HPjmeter жизнеспособным, но я все же оставлю вопрос открытым, чтобы узнать, знает ли кто-нибудь о каких-либо других инструментах.
РЕДАКТИРОВАТЬ : Начиная с версии 4.0.00 HPjmeter (доступно 05/2009) эта ошибка была исправлена.