Возможно, вам придется поиграться с -Xmx для больших файлов hprof.
инструменты доступны для просмотра выходных данных встроенного 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? И почему нет ни одного от Солнца (есть)?Я знаюЗатмение TPTP и другие инструменты могут отслеживать данные JVMTI на лету, но мне нужно решение, которое может обработать сгенерированные файлы hprof после факта, поскольку на развернутой машине установлена только JRE (не JDK).
РЕДАКТИРОВАТЬ: Очень полезный HPjmeter devel, опер ответил на мойвопрос на форуме HP ITRC указывая на то, чтоheap=dump
должен быть включен в-agentlib
опции временно, пока не исправлена ошибка в HPjmeter. Эта информация снова делает HPjmeter жизнеспособным, но я все же оставлю вопрос открытым, чтобы узнать, знает ли кто-нибудь о каких-либо других инструментах.
РЕДАКТИРОВАТЬ: Начиная с версии 4.0.00 HPjmeter (доступно 05/2009) эта ошибка была исправлена.