先週かそこら、夏のペット プロジェクトとして、CLR プロファイリング API をいじっていました。
私は、ANTS と DotTrace が行レベルのプロファイリングを実装する方法について考え始めました。プロファイリング API でこれに関連するものは何も見られないので、独自のものがあると思います。
これがどのように実装されているかについての指針や考えを探しています。
コードが JIT されているときに MSIL コードを挿入しますか?
CLR プロファイリング API は、すぐに使用できる Enter & Leave レベルでのトレースのみをサポートします。これはICorProfilerInfo::SetEnterLeaveFunctionHooksを使用して行うことができます
より細かいレベルでトレースするには、IL の織り込みが必要です。これらのオープン ソース プロファイラー コードを参照として使用できます。
どちらもJITCompilationStartedコールバック中にコードを織ります。