C#でパフォーマンスカウンタを使ってみた
chakemiです。
本日は、パフォーマンスカウンタからCPU使用率やメモリ空き容量などを取得してみました。
開発環境
- WindowsXP SP3
- VisualC#2010Express
PerformanceCounterとは、「コントロールパネル」の「管理ツール」にある「パフォーマンス」というシステムの状態を折れ線グラフで表示してくれるアプリケーションの値を.NETから参照できるクラスです。 では、さっそく。
PerformanceCounterクラスを使用するために、System.Diagnostics名前空間を追加します。
1
|
|
パフォーマンスカウンタは、多くの情報を管理していて、情報ごとに「Category」「Counter」「Instance」と階層構造に情報が分類されています。
「パフォーマンス」アプリケーションのカウンタの追加から選択出来るパフォーマンス オブジェクトを参考に必要なカテゴリなど調べてください。 今回は、CPU使用率、空きメモリ容量、ネットワーク送受信量を1秒間隔で表示してみたいと思います。
まず、必要なカテゴリ名を指定します。
1 2 3 |
|
次に、インスタンス名を指定します。
1 2 3 |
|
インスタンス名が必要なカウンタは指定します。 ネットワークデバイスはipconfigなどで調べて環境にあわせてください。
1 2 |
|
PerformanceCounterオブジェクトを生成します。
1 2 3 |
|
あとは、NextValueメソッドを使用して、現在の計算値を一秒間隔で表示します。
こんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|
カスタムカウンタの作り方や、カテゴリの一覧取得などは時間があったら書きたいと思います。