效能計數器值擷取
更新:2007 年 11 月
共有數種方式可以讀取效能計數器值:
您可以使用 PerformanceCounter 類別的 RawValue 屬性擷取計數器的未經處理值。
您可以使用 PerformanceCounter 類別的 NextValue 方法擷取計數器目前的計算值。
您可以在 PerformanceCounter 類別上使用 NextValue 方法擷取一組樣本,並使用 Calculate 方法來比較其值。
注意事項:
有一些安全性限制會影響您使用效能計數器的能力。如需詳細資訊,請參閱監視效能臨界值簡介。
原始、計算和取樣的資料
當您瞭解原始值及計算值會不斷地改變,而樣本可讓您擷取特定時間點的計數器靜態快照後,就相當容易瞭解原始值、下一個 (或計算) 值和樣本之間的互動。下圖說明原始值、下一個值與樣本間的關係。
效能計數器值:原始值、計算過的值和取樣的值
本圖說明稱為 Orders Per Second 的計數器中所包含的資料。此計數器的原始值為每秒都變動的獨立資料點,以線條表示的計算平均值顯示所收到訂單量不斷增加。在此圖表中,使用了下列資料點:
使用者可使用 NextValue 方法來擷取三個不同時間中計算過的值,分別以 NV1、NV2 和 NV3 來表示。由於下一個值不斷地改變,所以每次擷取的都是不同的值,而不需指定其他任何參數。
使用者可使用 NextSample 方法來取得兩個樣本,分別以 S1 和 S2 來表示。樣本將數值凍結於某個時間,因此使用者可以比較兩個樣本值並對它們執行計算。
比較擷取方法
以 RawValue 屬性擷取未經處理值非常快速,因為沒有執行任何計算或比較。例如,如果您只是使用計數器計算系統所處理的訂單數,就可以擷取計數器的原始值。如需擷取未經處理值的詳細資訊,請參閱 HOW TO:擷取未經處理的效能計數器值。
以 NextValue 方法擷取計算過的值通常比擷取未經處理值有用,但此值無法呈現資料的真實面,因為它可能反應出計算此值時資料的異常變動。例如,如果您有個計算每秒處理訂單數的計數器,特定時間的不正常大量或少量訂單處理將造成時間性上的不正確平均值。這可能會扭曲系統實際效能。如需擷取計算值的詳細資訊,請參閱 HOW TO:擷取計算出的效能計數器值。
藉著讓您可以擷取、保留和比較不同時間的各種數值,樣本會提供較正確的系統資料狀況。如果您必須比較不同計數器的值,或根據原始資料計算數值時,可以使用 NextSample 方法來擷取樣本。不過,這麼做可能會比 NextValue 呼叫需要稍多的資源。如需擷取範例的詳細資訊,請參閱 HOW TO:擷取效能計數器範例。
NextSample 方法會傳回 CounterSample 型別的物件。擷取範例時,您有權存取 CounterSample 類別上的屬性,例如 RawValue、BaseValue、TimeStamp 和 SystemFrequency。這些屬性讓您可以非常詳細地觀察形成樣本資料的資料。