次の方法で共有


チュートリアル : パフォーマンス カウンタ値の変更と取得

更新 : 2007 年 11 月

このチュートリアルの手順では、PerformanceCounter クラスのメソッドを使って、パフォーマンス カウンタの値を操作する方法について説明します。パフォーマンス カウンタとは、Windows が各種のシステム リソースに関するパフォーマンス データを収集する手段です。Windows には、アプリケーションでやり取りできる定義済みのカウンタのセットが用意されており、カテゴリごとに分類されています。カウンタから取得できる値は、生の値か、または時間の経過と共に変化する計算値です。カウンタの現在の値を増減させるには、いくつかの方法があります。

このチュートリアルでは、次の作業を行います。

  • システムに用意されているカウンタとやり取りする PerformanceCounter コンポーネントを作成して構成します。

  • カウンタの値を取得して表示する UI 要素を含む、Windows アプリケーションを作成します。

  • RawValue プロパティを使用して、カウンタの生の値を設定および取得するコードを記述します。

  • IncrementIncrementBy、および M:System.Diagnostics.PerformanceCounter.Decrement の各メソッドを使用して、カウンタの値を変更し、その新しい値を取得するコードを記述します。

s155t6ta.alert_note(ja-jp,VS.90).gifメモ :

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

Windows アプリケーションを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスで、Visual Basic または Visual C#Windows アプリケーションを作成します。プロジェクトに PerformanceCounterExample という名前を付けます。

  3. ツールボックスの [Windows フォーム] タブから、次のコントロールをアプリケーションに追加します。

    • 2 つのラベル

    • 1 つのテキスト ボックス

    • 5 つのボタン

  4. 各コントロールのプロパティを次のように設定します。

    コントロール

    プロパティ

    Label1

    Name

    lblCounterValue

     

    Text

    (空白)

    Label2

    Name

    lblSystemCounterValue

     

    Text

    (空白)

    Textbox1

    Name

    txtValue

     

    Text

    (空白)

    Button1

    Name

    btnSetRawValue

     

    Text

    Set Raw Value of the Custom Counter

    Button2

    Name

    btnGetNextValue

     

    Text

    Get Next Value of System Counter

    Button3

    Name

    btnIncrement

     

    Text

    Increase the Custom Counter by 1

    Button4

    Name

    btnDecrement

     

    Text

    Decrease the Custom Counter by 1

    Button5

    Name

    btnIncrementBy

     

    Text

    Increase Custom Counter by a value

  5. 必要に応じてコントロールの位置を調整します。

  6. 作業内容を保存します。

PerformanceCounter コンポーネントを作成して構成するには

  1. サーバー エクスプローラを表示し、[サーバー] ノードにアクセスします。詳細については、「方法 : サーバー エクスプローラ/データベース エクスプローラにアクセスして初期化する」を参照してください。

  2. [サーバー] ノードで、使用しているコンピュータの一覧を展開します。パフォーマンス カウンタ、メッセージ キュー、イベント ログ、およびサービスのエントリが表示されます。

  3. [パフォーマンス カウンタ] ノードを展開し、[Processor] ノードを見つけます。

  4. [% Processor Time] ノードを展開します。

  5. _Total カウンタをフォームにドラッグします。_Total カウンタに対して構成された PerformanceCounter コンポーネントがプロジェクトに追加されます。このコンポーネントは、Visual Basic では PerformanceCounter1、Visual C# では performanceCounter1 と名付けられます。

システム カウンタの生の値を取得するには

  • デザイナで、[Get Next Value of System Counter] をダブルクリックして、Click イベント ハンドラを作成します。このメソッドは、カウンタの生の値ではなく、計算値を返します。PerformanceCounter のインスタンスで監視しているカウンタの次の値を取得して表示するために、次のコードを追加します。

    Private Sub btnGetNextValue_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnGetNextValue.Click
       lblSystemCounterValue.Text = _
          "The current value of the system counter is: " _
          & PerformanceCounter1.NextValue().ToString()
    End Sub
    
    private void btnGetNextValue_Click(object sender, System.EventArgs e)
    {
       lblSystemCounterValue.Text = 
          "The current value of the system counter is: " 
          + performanceCounter1.NextValue().ToString();
    }
    

以降の手順では、カスタム カテゴリおよびカスタム カウンタを使用します。

カスタム カウンタおよびカスタム カテゴリを作成するには

  1. [表示] メニューの [デザイナ] をクリックして、Form1 のデザイナにアクセスします。

  2. デザイナで、サーバー エクスプローラを表示し、[サーバー] ノードにアクセスします。詳細については、「方法 : サーバー エクスプローラ/データベース エクスプローラにアクセスして初期化する」を参照してください。

  3. [サーバー] ノードで、使用しているコンピュータの一覧を展開します。

  4. [パフォーマンス カウンタ] ノードを右クリックし、[新しいカテゴリの作成] をクリックします。

    [パフォーマンス カウンタ ビルダ] ダイアログ ボックスが表示されます。

  5. [カテゴリ名] に「MyNewCategory」と入力します。

  6. [新規作成] をクリックして新しいカウンタを追加し、MyNewCounter という名前を付けます。[OK] をクリックして新しいカテゴリおよびカウンタを作成します。

    s155t6ta.alert_note(ja-jp,VS.90).gifメモ :

    この手順では、レジストリに書き込むためのアクセス許可が必要です。新しいカウンタを作成できない場合は、システム管理者にお問い合わせください。

  7. サーバー エクスプローラで、作成した新しいカウンタを選択し、フォームにドラッグします。新しいカウンタ MyNewCounter に対して構成された新しい PerformanceCounter コンポーネントがプロジェクトに追加されます。

    s155t6ta.alert_note(ja-jp,VS.90).gifメモ :

    これらの手順では、使用しているコンピュータにカウンタが作成されます。このアプリケーションを配置する場合は、配置先のコンピュータにカウンタを作成する必要があります。そのためには、プロジェクトにインストーラを追加します。PerformanceCounter オブジェクトを選択し、[プロパティ] ウィンドウの [インストーラの追加] をクリックします (このコマンドが使用できない場合は、[プロパティ] ウィンドウを右クリックし、[コマンド] をクリックします)。詳細については、「インストール コンポーネントの概要」を参照してください。

カスタム カウンタの生の値を設定するには

  1. デザイナで、Visual Basic の場合は PerformanceCounter2 を、Visual C# の場合は performanceCounter2 を選択します。

  2. ReadOnly プロパティを false に設定します。

  3. btnSetRawValue ボタンをダブルクリックして、コード エディタに Click イベント ハンドラを作成します。

  4. 作成したカウンタの生の値を設定し、最初のラベル コントロールにカウンタの値を表示するために、次のコードを追加します。

    Private Sub btnSetRawValue_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnSetRawValue.Click
       PerformanceCounter2.RawValue = CLng(txtValue.Text)
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnSetRawValue_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.RawValue = long.Parse(txtValue.Text);
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

カスタム カウンタの値を 1 だけ増加させて表示するには

  1. デザイナで、[Increase the Custom Counter by 1] ボタンをダブルクリックして、コード エディタに Click イベント ハンドラを作成します。

  2. カスタム カウンタに 1 を加算し、最初のラベル コントロールにカウンタの値を表示するために、次のコードを追加します。

    Private Sub btnIncrement_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnIncrement.Click
       PerformanceCounter2.Increment()
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnIncrement_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.Increment();
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

カスタム カウンタの値を 1 だけ減少させて表示するには

  1. デザイナで、[Decrease the Custom Counter by 1] ボタンをダブルクリックして、コード エディタに Click イベント ハンドラを作成します。

  2. カウンタの値を 1 だけ減少させ、最初のラベル コントロールにカウンタの値を表示するために、次のコードを追加します。

    Private Sub btnDecrement_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnDecrement.Click
       PerformanceCounter2.Decrement()
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnDecrement_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.Decrement();
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

カスタム カウンタの値をユーザー定義値だけ増加させるには

  1. デザイナで、[Increase Custom Counter by a value] ボタンをダブルクリックして、コード エディタに Click イベント ハンドラを作成します。

  2. テキスト ボックスに入力された値だけカウンタの値を増加して、最初のラベル コントロールにカウンタの値を表示するために、次のコードを追加します。

    Private Sub btnIncrementBy_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnIncrementBy.Click
       PerformanceCounter2.IncrementBy(CLng(txtValue.Text))
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnIncrementBy_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.IncrementBy(long.Parse(txtValue.Text));
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    }
    

アプリケーションをテストするには

  1. ファイルを保存します。

  2. F5 キーを押して、アプリケーションをコンパイルし、起動します。

  3. [Get Next Value of System Counter] ボタンをクリックして、プロセッサ カテゴリのカウンタの現在の値を取得します。NextValue() メソッドを使用して値を取得するため、最初の呼び出しは 0 を返します。

    現在の値がラベルに表示されます。

  4. テキスト ボックスに「25」と入力し、[Set Raw Value of Custom Counter] をクリックします。

    ラベル フィールドが更新され、現在の生の値が 25 であることが示されます。

  5. [Increase Custom Counter by 1] ボタンをクリックします。

    ラベルの値が 1 だけ増加します。

  6. [Decrease Custom Counter by 1] ボタンをクリックします。

    ラベルの値が 1 だけ減少します。

  7. テキスト ボックスに「25」と入力し、[Increase Custom Counter by a value] をクリックします。

    ラベルの値が 25 だけ増加します。

    Windows のパフォーマンス ツールでパフォーマンス カウンタを表示することもできます。

Windows のパフォーマンス ツールでパフォーマンス カウンタを表示するには

  1. Microsoft 管理コンソールで パフォーマンス ツールを開きます。パフォーマンス ツールを開く方法については、オペレーティング システムのヘルプを参照してください。

  2. パフォーマンス グラフの下にあるカウンタの一覧を右クリックし、[カウンタの追加] をクリックします。

  3. [パフォーマンス オブジェクト] ボックスの一覧の [MyNewCategory] をクリックし、カウンタの一覧の [MyNewCounter] をクリックします。[追加] をクリックして終了します。

  4. ツール バーの [レポートの表示] をクリックしてカウンタの値を表示します。

参照

概念

パフォーマンスしきい値の監視の概要

その他の技術情報

パフォーマンスしきい値の監視

パフォーマンス カウンタに関するチュートリアル