2

ハードウェア パフォーマンス カウンターを使用して、Linux で JIT によって生成されたコードをプロファイリングしたいと考えています。私が知っているように、最も一般的なプロファイラはoprofileperfです。

JIT と oprofile/perf を統合するにはどうすればよいですか?

私の JIT は、oprofile で既にサポートされている Java ではありません。(パフォーマンス?)

たとえば、LLVM の JIT を考えることができます。したい

  1. JIT 化されたコードから最もホットな関数 (それらの名前) を参照してください
  2. すべての命令に割り当てられたパフォーマンス カウンターの統計情報を使用して、最もホットな関数の逆アセンブリを確認します。
4

1 に答える 1

3

perf を使用して JITed コードをプロファイリングするには、 perf-map-agentライブラリをダウンロード、コンパイル、およびインストールしてから (Java コードの場合はともかく) を -agentpath:<path>/libperfmap.soコマンド ラインに追加します。

/tmp/perf-$pid.mapJava 以外のコードの場合、シンボル マップ ファイルが生成されている限り、perf はそれらを使用して perf レポートを生成します。

Brendan Gregg は、関連するリファレンスを含むブログ投稿を行っています。

于 2014-10-07T14:48:11.333 に答える