プロファイリングの有効化
コード プロファイラーは DLL として実装されているソフトウェア ツールであり、イメージの実行時にランタイム システムによって呼び出されます。 プロファイラーは、関数の呼び出しまたは終了が発生するたびに通知を受け取ります。また、プログラマにとって関心のあるイベントが発生したときにも通知を受け取ります。 これらのイベントの統計量を収集することにより、プロファイラーは、どのルーチンが CPU 時間を最も多く消費したか、いつガベージ コレクションが発生したか、例外がスローされたかどうかなど、総合的な情報を作成できます。
ランタイム システムは、プロセスを初期化する時にプロファイラーをプロセスに接続します。 ランタイム システムは、どのような処理を行うのか決定するために、COR_ENABLE_PROFILING および COR_PROFILER という 2 つの環境変数を調べます。
COR_ENABLE_PROFILING が存在しないか、COR_ENABLE_PROFILING の値が 0 に設定されている場合は、ランタイム システムはプロセスをプロファイラーに接続しません。 それ以外の場合、ランタイム システムは、複数のプロファイルのうち、指定されたクラス ID (CLSID) が COR_PROFILER の値と一致するプロファイラーにプロセスを接続します。
たとえば、次のコマンド ラインを実行すると、ランタイム システムは、この CLSID を持つプロファイラー COM クラスのインスタンスを作成し、プロセスに接続します。
set Cor_Profiler={32E2F4DA-1BEA-47ea-88F9-C5DAF691C94A}
このプロファイラーは、ICorProfilerCallback インターフェイスを実装している必要があります。その後、ランタイム システムは、重要なイベントをプロファイラーへ通知するために、ICorProfilerCallback インターフェイスを呼び出します。