基本介紹
實際上,可以通過編寫程式來訪問所有的Windows性能計數器。Windows中,註冊表是訪問性能計數器的一種機制。性能信息並不實際存在於註冊表中,在註冊表編輯器RegEdit.exe中是無法查看的,但可以通過註冊表函式來訪問,利用註冊表鍵來獲得從性能數據提供者那裡提供的數據。打開名為HKEY_PERFORMANCE_DATA的特殊鍵,利用RegQueryValueEx函式查詢鍵下面的值,就可以直接訪問註冊表性能計數器信息。當然,也可以利用性能數據幫助器(PDH, Performance Data Helper) API (Pdh.dll)來訪問性能計數器信息。
相關術語
性能對象
性能對象(Performance Object):被監視的性能對象,如Processor、Process、Memory、PhysicalDisk等,相當於類(Class)。
性能對象有兩種:一種只支持一個實例,另一種支持多個實例。(我們關心的進程對象支持多個實例,而每個實例對應系統中的一個進程。)一個對象可以有多個性能指標;每個性能指標都用一個計數器(Counter)來記錄。就進程對象而言,它擁有的計數器種類包括ID Process(進程的PID)、Thread Count(執行緒數)、Priority Base(進程優先權)、IO Read Bytes/sec(每秒IO讀取位元組數)、IO Writer Bytes/sec(每秒IO寫出位元組數)等。(本文我們只關心ID Process計數器的值。)
性能計數器
性能計數器(Performance Counter):描述性能對象性能信息的方式,相當於類屬性。
編程訪問
MSDN---You can consume performance data using either the registry interface or the PDH interface. The PDH interface is easier to use than the registry interface and is recommended for most performance data collection tasks. The PDH interface is essentially a higher-level abstraction of the functionality that the registry interface provides.
編程方式訪問 Performance Counter 主要有:註冊表和PDH兩者方式,後者相對來說更簡單。