システムの性能を計測したい場合に、
各処理の開始/終了時刻をログファイルへ出力して開始前後で差分を取る方法が良く利用される。
が、ランニング中のとある時刻にパフォーマンスの劣化が確認された場合、これを解析しようとしても、各処理で時間軸の相関を取るのが煩わしく(別途分析ツールなんて作りたくない!)、これを解決するための手段としてパフォーマンスカウンターが利用出来るのでは?と考え、まずは独自のカウンターを作成するサンプルを書いてみた(ほぼMSDNからの引用だけど)。
[展望]
DBアクセス、外部との通信時間など性能劣化を引き起こす要因に対して、これらを計測するためのカウンターを用意し、Perfmonでそれぞれの相関を確認出来れば、分析は捗りそう。
標準で用意されているカウンター(メモリやディスク, CLR関連)も併用する事が出来る。
[参考]
<PerformanceCounter クラス>
http://msdn.microsoft.com/ja-jp/library/system.diagnostics.performancecounter(v=vs.110).aspx