2009-07-07 2 views
1

Я пытаюсь использовать VisualVM для профилирования автономного приложения Java (Sun JDK 1.6). У меня есть сценарий проверки производительности, где я могу запускать свое приложение и получать его, чтобы сообщить о некоторых показателях, о которых я забочусь.моментальный снимок JTM для VisualVM

Есть ли способ получить JVM для сбора некоторого моментального снимка профилирования центрального процессора, который я могу позже проанализировать с помощью VisualVM?

Я искал что-то похожее на флаг -XX:+HeapDumpOnOutOfMemoryError, который записывает кучу дампа на диск перед тем, как выбросить OutOfMemoryError.

ответ

1

Инструмент hprof встроен в JVM (http://java.sun.com/developer/technicalArticles/Programming/HPROF.html), который позволяет вам фиксировать основную информацию профилирования, ее собаку медленно и создает массивные файлы.

VisualVM AFAIK пока не обладает этими способностями, но у вашего кита есть возможность делать то, что вы хотите, с его агентом, и программно.

YourKit по линии агента (-agentlib: yjpagent = OnExit = снимок) http://www.yourkit.com/docs/80/help/additional_agent_options.jsp

Программным http://www.yourkit.com/docs/80/api/index.html

Как в стороне я хотел бы предложить, что вы осторожны с измерением CPU наряду с тестированием производительности, как это будут определенно искажать ваши результаты, подумали ли вы о том, чтобы посмотреть на что-то вроде https://japex.dev.java.net/ вокруг вашего основного кода?

+0

Да, VisualVM не имеет этой возможности, и я закончил использование YourKit. Я дважды запускаю тесты производительности - один с профилированием, который позволяет собирать моментальный снимок, а другой с профилированием отключен для сбора показателей производительности, о которых я забочусь. –

Смежные вопросы