C#でCPUパフォーマンス解析

作成したアプリの各処理のCPU使用量を知りたい場合、VisualStudioがインストールされている環境ではパフォーマンスプロファイラを使用すれば良いのですが、本番環境の本番運用ではそうはいきません。

というわけで、C#でCPUパフォーマンス解析を行う機能を実装しました。

詳細は記載しませんがざっくり説明すると、ProcessThreadインスタンスのTotalProcessorTimeプロパティでプロセッサを使用した時間の合計値が取得できるので、各処理開始から終了までのTotalProcessorTimeの差を積算していき、
各処理ごとのCPU使用量を集計することで実現できます。

この集計結果を定期的にログファイルに出力しておけば、問題発生時や性能改善時の役立ちそうです。

コメントを残す