2016-06-15 16 views
0

どのような方法でどのメソッドがJITコンパイルされているかを知りたい。.NET jitコンパイラログを取得する

これを可能にするプロファイラAPIがあることは知っていますが、C++でプロファイラを作成する必要があります。 また、今後、より高速なバックグラウンドJITtingのためにJITプロファイルを作成するProfileOptimizationという機能もあります。いくつかのバイナリファイルを作成します。おそらく、もし私が.exe/.pdbを持っていれば、そこからメソッド名を取得する可能性がありますか?

私は、JITコンパイルされたメソッドの数を取得するためにパフォーマンスモニタを使用しますが、カウントは

おかげで私のナノ最適化の戦争を開始するには十分ではありません!

+0

「but」だけではありません。必要に応じてC++のコードを手に入れて、命令の順序を知り、実際に*変更するために何をしようとしていますか?あなたはなぜプログラムがうまくいくと思いますか?あなたがそれを悪化させるかなり高い確率。あなたはとにかく背景ジッタを打ち負かすことはできません。またはNgen.exeは、まったくジットしない最も明白な方法です。 –

+1

コードを変更して測定することができます。それがうまく動作しない場合 - 私はコードをそのまま残す:)それは私がそれがより良く動作すると確信している理由です。 私の場合、NGEN/PGOはオプションではありません。私はちょっと試合をしたいが、ログが必要だ。特定のメソッドのJIT時間が含まれている場合は、それがさらに優れています。 – Grigory

答えて

2

PerfViewを使用すると、関数がJITコンパイルされる順序を取得できます。具体的には、「バックグラウンドJIT実行中」のセクションで説明したように、生成およびアクセスできるJIT統計を使用できます。thisの記事を参照してください。

+0

ブリリアント。正確に私が必要なもの。 – Grigory

+1

@Grigory満足している場合は、忘れずに記入してください。 –

+1

はい、サー!完了! :) – Grigory

関連する問題