VisualVM の JVM コールツリー スナップショット
質問
使用しようとしています VisualVM Java (Sun JDK 1.6) スタンドアロン アプリケーションをプロファイリングします。スクリプト化されたパフォーマンス テスト環境があり、そこでアプリケーションを実行し、関心のあるいくつかのメトリクスをレポートさせることができます。
JVM に CPU プロファイリング スナップショットを収集させ、後で VisualVM で分析できるようにする方法はありますか?
似たものを探しています -XX:+HeapDumpOnOutOfMemoryError
直前にヒープダンプをディスクに書き込むフラグ。 OutOfMemoryError
投げられる。
解決
JVM には hprof ツールが組み込まれています (http://java.sun.com/developer/technicalArticles/Programming/HPROF.html) 基本的なプロファイリング情報を取得できますが、処理が遅く、大量のファイルが生成されます。
私の知る限り、VisualVM にはこれらの機能はまだありませんが、yourkit にはエージェントを介してプログラム的に必要なことを実行する機能があります。
エージェントライン経由のキット (-agentlib:yjpagent=onexit=snapshot)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/ コアコードの周りにありますか?