ビルドの一部として、 cargo-maven2-plugin を使用して、アプリで jetty コンテナーを起動します。断続的に、「Jetty 6.x Embedded コンテナーを開始できませんでした」という結果が表示されます。デフォルトの 120 秒のタイムアウトに逆らっています。
Sun 1.6.0_07 JVM を使用しているので、hprofが役立つのではないかと考えました。
健全性テストとして、私は
set MAVEN_OPTS=%MAVEN_OPTS% -agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out
そして走った
mvn -Dmaven.test.skip=true install
(貨物は統合テスト前と統合テスト後の目標の間に実行するように構成されています)
これは私が望むもののようです - コンテナの開始と停止に関するメッセージと、テストがスキップされているというメッセージが表示されます。Maven がビルドの概要を出力した後、「実行中のスレッドをサンプリングして CPI の使用状況をダンプしています ... 完了」というメッセージが表示されます。hprof.out ファイルが書き込まれ、必要な種類のサンプル データが含まれています。
もちろん、これは maven 自体のサンプルであり、役に立ちません。
Web アプリの同じサンプリング情報を取得するにはどうすればよいですか?
私の最初の考えはcargo.jvmargsプロパティを使うことでした
<cargo.jvmargs>-agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out</cargo.jvmargs>
、しかし、(a)これを行うと(MAVEN_OPTSからプロファイリング引数を削除します)、結果のhprof.outファイルが見つかりません。(b)ドキュメントをもう一度見ると、おそらくそれらはstart /にのみ使用されていることが示唆されますコンテナ自体ではなく、コンテナの停止?