Как мне профилировать встроенный контейнер молы?
Как часть моей сборки, мы используем Cargo-Maven2-плагин для запуска контейнера причала с нашим приложением. Периодически мы получаем результат "Не удалось запустить встроенный контейнер Jetty 6.x". Мы увеличиваем время ожидания по умолчанию на 120 секунд.
Мы используем JVM Sun 1.6.0_07, поэтому я подумал, что hprof может помочь.
В качестве теста здравомыслия я начал с
set MAVEN_OPTS=%MAVEN_OPTS% -agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out
а потом побежал
mvn -Dmaven.test.skip=true install
(Cargo настроен для выполнения во время целей перед интеграцией и после тестирования)
Похоже, это то, что я хочу - я вижу сообщения о запуске и остановке контейнера, а также сообщения о том, что тесты пропускаются. После того, как maven выдает сводную информацию о сборке, я вижу сообщение "Дамп использования ИПЦ путем выборки запущенных потоков... готово". Файл hprof.out написан, у него есть тип данных, которые я хочу.
Конечно, это выборка самого Maven, которая бесполезна.
Как получить ту же информацию о выборке для моего веб-приложения?
Сначала я хотел использовать свойство cargo.jvmargs.
<cargo.jvmargs>-agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out</cargo.jvmargs>
, но (а) когда я делаю это (удаляя аргументы профилирования из MAVEN_OPTS), я не могу найти результирующий файл hprof.out и (б) второй взгляд на документацию показывает, что, возможно, они используются только для запуска / остановка контейнера, а не сам контейнер?