共用方式為


逐步解說:變更和擷取效能計數器值

更新:2007 年 11 月

此份逐步解說中的程序將示範如何使用 PerformanceCounter 類別 (Class) 上的方法,來使用效能計數器的值。效能計數器是 Windows 用來在各種系統資源上收集效能資料的方法;Windows 包含一組可互動的預先定義計數器並將其加以分類。您從計數器擷取的值可能是未經處理的值,也可能是隨時間變更的計算值。增加或減少計數器的目前值有幾種方法。

在逐步解說期間,您將:

  • 建立並設定 PerformanceCounter 元件,與系統所提供的計數器進行互動。

  • 建立 Windows 應用程式,其中包含的 UI 項目會擷取並顯示計數器的值。

  • 撰寫使用 RawValue 屬性的程式碼,來設定並擷取計數器中的未經處理值。

  • 撰寫使用 IncrementIncrementByM:System.Diagnostics.PerformanceCounter.Decrement 方法的程式碼,來變更計數器的值並擷取新值。

注意事項:

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

若要建立 Windows 應用程式

  1. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。

  2. 在 [新增專案] 對話方塊中,建立 Visual Basic 或 Visual C# [Windows 應用程式]。將專案命名為 PerformanceCounterExample。

  3. 在 [工具箱] 的 [Windows Form] 索引標籤中,將下列控制項加入至您的應用程式:

    • 兩個標籤

    • 一個文字方塊

    • 五個按鈕

  4. 在這些控制項上設定下列屬性:

    控制項

    屬性

    Label1

    Name

    lblCounterValue

     

    Text

    (空白)

    Label2

    Name

    lblSystemCounterValue

     

    Text

    (空白)

    Textbox1

    Name

    txtValue

     

    Text

    (空白)

    Button1

    Name

    btnSetRawValue

     

    Text

    設定自訂計數器的未經處理值

    Button2

    Name

    btnGetNextValue

     

    Text

    取得系統計數器的下一個值

    Button3

    Name

    btnIncrement

     

    Text

    自訂計數器增加 1

    Button4

    Name

    btnDecrement

     

    Text

    自訂計數器減少 1

    Button5

    Name

    btnIncrementBy

     

    Text

    自訂計數器增加固定值

  5. 隨意排列這些控制項。

  6. 儲存您的工作。

若要建立和設定您的 PerformanceCounter 元件

  1. 開啟 [伺服器總管] 並存取 [伺服器] 節點。如需詳細資訊,請參閱 HOW TO:存取及初始化伺服器總管/資料庫總管

  2. 在 [伺服器] 節點下找出電腦的清單,並加以展開。您會看到效能計數器、訊息佇列、事件記錄檔和服務的項目。

  3. 展開 [效能計數器] 節點並找出 [處理器] 節點。

  4. 找出 [% Processor Time] 節點,並加以展開。

  5. 將 _Total 計數器拖曳至表單上。接著將為 PerformanceCounter 計數器設定的 _Total 元件加入至專案。這個元件在 Visual Basic 中的名稱為 PerformanceCounter1,在 Visual C# 中則為 performanceCounter1。

若要擷取系統計數器中未經處理的值

  • 在設計工具中,按兩下 [取得系統計數器的下一個值] 按鈕,來建立 Click 事件處理常式。這個方法會報告計數器中計算過的值,而不是未經處理的值。加入下列程式碼來擷取並顯示 PerformanceCounter 執行個體 (Instance) 正在監看之計數器中的下一個值:

    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. 在設計工具中開啟 [伺服器總管],然後存取 [伺服器] 節點。如需詳細資訊,請參閱 HOW TO:存取及初始化伺服器總管/資料庫總管

  3. 在 [伺服器] 節點下找出電腦的清單,並加以展開。

  4. 以滑鼠右鍵按一下 [效能計數器] 節點,然後按一下 [建立新分類]。

    [效能計數器產生器] 對話方塊隨即出現。

  5. 在 [分類名稱] 中輸入 MyNewCategory。

  6. 按一下 [新增] 以加入新的計數器,並將它命名為 MyNewCounter。按一下 [確定] 來建立新的分類和計數器。

    注意事項:

    在這個步驟中,您需要寫入登錄的使用權限。如果您無法建立新的計數器,請與系統管理員連絡。

  7. 在 [伺服器總管] 中,瀏覽至新的計數器並將其拖曳至表單上。接著將為新計數器 MyNewCounter 設定的新 PerformanceCounter 元件加入至專案中。

    注意事項:

    這些步驟會在您的電腦上建立計數器。如果您要部署這個應用程式,必須在目標電腦上建立計數器。您可以將安裝程式加入至專案來進行。選取 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. 在設計工具中,按兩下 [自訂計數器增加 1] 按鈕,以便在程式碼編輯器中建立 Click 事件處理常式。

  2. 加入下列程式碼,在自訂計數器中加一,然後在第一個標籤控制項中顯示計數器的值。

    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 為單位減少自訂計數器] 按鈕,以便在程式碼編輯器中建立 Click 事件處理常式。

  2. 加入下列程式碼,將計數器的值減一,然後在第一個標籤控制項中顯示計數器的值。

    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. 在設計工具中,按兩下 [自訂計數器增加固定值] 按鈕,以便在程式碼編輯器中建立 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. 按一下 [取得系統計數器的下一個值] 按鈕,來擷取處理器分類計數器中的目前值。因為您使用 NextValue() 方法擷取該值,所以第一個呼叫將傳回 0。

    這時您應看到目前值顯示在標籤中。

  4. 在文字方塊中輸入 25,然後按一下 [設定自訂計數器的未經處理值]。

    接著應會更新標籤欄位來顯示未經處理的值現在是 25。

  5. 按一下 [自訂計數器增加 1] 按鈕。

    標籤中的值應增加 1。

  6. 按一下 [以 1 為單位減少自訂計數器] 按鈕。

    標籤中的值應減少 1。

  7. 在文字方塊中輸入 25,接著按一下 [自訂計數器增加固定值]。

    標籤中的值應增加 25。

    您也可以在 Windows 效能工具中檢視您的效能計數器。

若要在 Windows 效能工具中檢視您的效能計數器。

  1. 開啟屬於 [Microsoft Management Console] 一部分的 [效能] 工具。查詢作業系統 [說明],尋找用以開啟 [效能] 工具的步驟。

  2. 以滑鼠右鍵按一下效能圖形下方的計數器清單,然後按一下 [加入計數器]。

  3. 從 [效能物件] 清單中選取 [MyNewCategory],或從計數器清單中選取 [MyNewCounter]。按一下 [加入] 以完成。

  4. 從工具列按一下 [檢視報告] 來顯示計數器的值。

請參閱

概念

監視效能臨界值簡介

其他資源

監視效能臨界值

效能計數器逐步解說