Java用に存在するエンドツーエンドの優れたCPUプロファイラーは何ですか?
私が探しているもののクイックリスト:
- オフライン プロファイリング - プログラムの実行中にユーザーの操作や GUI は必要ありません。プロファイル データをファイルにダンプし、後で GUI を使用して表示する必要があります。
- エンド ツー エンドの記録 - プロファイラーは、J2SE アプリケーションのメイン コールに入った直後に記録を開始できる必要があります。JVM が終了する直前に記録を停止する必要があります。
- コール グラフの生成 - プロファイリングの後、データを視覚的なコール グラフに変換するとよいでしょう。
Google には C/C++ 用の優れたプロファイラーがあります - http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
これに相当するJavaが存在する場合、それはまさに私が探しているものです。
正確な CPU コール プロファイリングを使用する場合に調べた他の商用プロファイラーと比較してパフォーマンスが悪いため、将来のプロファイラーのリストに HProf を含めません (通常はバイト コード インジェクションを介して実行されますが、これは低速ですが、HProf は少なくとも表示されます。他のプロファイラーよりも桁違いに遅く、1 回のサンプリング プロファイルの実行に 1 ~ 2 時間かかる場合、同じ実行を 1 日以上待つことは受け入れられません)。