共用方式為


性能計數器的新功能

本節說明每個版本新增至性能計數器的新功能。

Windows 10 20H1

如果您要直接從 登錄中讀取效能數據,您現在可以僅收集元數據,以避免在建立可用的效能物件和計數器清單時的不必要工作。 如果您在查詢中使用 MetadataGlobal 而不是 Global,所有啟用元數據的提供者 DLL 都會略過數據收集步驟,可能會改善具有許多進程或線程之系統上的查詢效能。 未啟用元數據的提供者 DLL 會繼續如前一般運作。

如果您使用 效能 DLL提供性能數據,您可以實作對僅收集元數據的支援,以避免不必要的數據收集。 更新您的 Collect 函式,以只使用元數據來回應 MetadataGlobalMetadataCostly 查詢(使用 PERF_METADATA_NO_INSTANCESPERF_METADATA_MULTIPLE_INSTANCES 進行 NumInstances,並省略回應的所有 PERF_INSTANCE_DEFINITION 區塊),然後將具有 REG_DWORD 值為 1 的 Collect Supports Metadata 登錄值新增至服務的 Performance 子機碼。

Windows 7 和 Windows Server 2008 R2

CTRPP 工具已變更,以改善和簡化程式代碼產生。 此工具現在只會產生標頭和資源檔。 如果您想要舊程式代碼產生行為(不建議),您可以使用新的 -legacy 自變數。

  • 您現在必須分別指定新的 -o-rc 自變數,以指定標頭和資源檔的名稱和位置。
  • 您可以使用選擇性的新 -prefix 自變數來指定字串,以新增至產生的頭檔中定義的全域變數和函式開頭。
  • 如果您必須更新計數器指令清單,使用新的程式碼產生就不需要將先前的回呼實作與新的產生的程式代碼合併,因為回呼不再包含在產生的程式代碼中。

新的 symbol 屬性已可用於以下的清單元素:

提供者計數集需要 symbol 屬性,而對於 計數器是選擇性的。 屬性可讓您提供一個符號名稱,供您在呼叫提供者函式時用來參考每個元素(例如,您可以在呼叫 PerfCreateInstance 時使用計數器集的符號名稱)。

Windows Vista

此版本已完全變更提供計數器數據的性能計數器架構。

先前,您使用 INI 檔案來定義計數器數據,並實作在取用者程式中執行的效能 DLL,以在取用者要求數據時提供數據。 此架構已被取代,因此不建議用於新程式碼,因為效能和可靠性問題顯著。

新的架構會使用指令清單來定義計數器數據,並在提供者的程式中執行程式碼,以在取用者要求數據時提供數據。 如需其他詳細資料,請參閱 使用 2.0 版提供的計數器數據。

此版本已新增下列功能:

此版本已新增下列結構:

如需您在指令清單中用來定義計數器的 XML 元素清單,請參閱 性能計數器架構

如需剖析您的指令清單並生成您用作提供者起始點程式碼的 CTRPP 前置處理器工具資訊,請參閱 CTRPP