使用工作單位效能計數器
工作單位效能計數器可讓 Windows 平臺深入瞭解應用程式的流程。 工作單位可讓應用程式描述應用程式在特定程式和宣告擁有權上執行的哪些部分。 例如,網頁瀏覽器有自己的工作管理員來管理其所有進程;使用工作單位效能計數器時,可以從 Windows 工作管理員取得該層級的詳細資料和控制項。
例如,請考慮在使用者的裝置上執行的 Microsoft Edge 瀏覽器。 瀏覽器在特定進程上執行,但會建立其他進程來裝載索引標籤、網路和音訊服務、延伸模組和其他功能。 特定程式可用來執行多個工作單位,而不同的應用程式可以共用它們。 在內部,瀏覽器知道其相依性和如何與必要的程式通訊,但 Windows 平臺和其他應用程式不知道瀏覽器的撰寫方式。 擁有這類資訊有助於提供更精確的資源使用資訊,並協助診斷應用程式的問題;工作管理員可以報告進程上執行的工作單位。 如此一來,偵錯工具可以藉由描述進程上執行的工作類型,來簡化開發人員工作負載。
每個工作單位都有下列屬性。
- AppOwnerProcessId:擁有指定工作單位之進程的識別碼。
- HostProcessId:指定工作單位執行所在進程的識別碼。
- 種類:接收工作單位的應用程式應該如何解譯工作單位。
- 標題:工作單位的標籤。
- UniqueId:工作單位的識別碼。
資料合約
Windows 平臺中與工作單位共用的資訊可供系統中執行的任何應用程式查詢。 系統會使用 效能計數器 API來提供及取用資料,並公開提供並記載。 作為實作的一部分,效能計數器必須具有唯一識別碼字串,我們用來識別工作單位的標籤。 perf-counter 唯一識別碼字串的預期格式為 。
- 前置 「WorkUnit」 字串。
- 以 1 為基礎的 uniqueId。
- 工作單位執行所在進程的識別碼。
- 代表應用程式的主要進程識別碼。
- 工作單位的使用者易記標題。
注意
例如,如果工作單位資訊必須更新 (,則標題已變更) ,它會保留其 uniqueId。 新的單位必須使用新的唯一識別碼。 uniqueId 必須使用管道字元 「|」 串連,如下列範例所示。
範例:
"WorkUnit|1|4321|1019|Instance 1 of pid 1111, owned by 1111"
"WorkUnit|1|8765|1019|Instance 1 of pid 5555, owned by 5555"
"WorkUnit|1|9999|1019|Instance 1 of pid 9999, owned by 9999"
"WorkUnit|2|4321|1019|Instance 2 of pid 1234, owned by 4321"
"WorkUnit|2|8765|1019|Instance 2 of pid 5678, owned by 8765"
提供工時單位
您可以使用 效能計數器 API來建立工作單位效能計數器集的實例。 請遵循上述所述的 資料合約 ,以確保其他應用程式可以成功驗證及取用您的資料。
視覺化工時單位
如果您想要從工作單位效能計數器查詢資料,您可以使用效能計數器 API 或效能監視器應用程式。
- 在 CMD 提示字元或 [執行] 對話方塊中輸入 「perfmon」,以啟動 PerfMon 工具。
- 選取 [監視工具] 底下的 [效能監視器]。
- 按一下綠色 '+' 符號) ([新增計數器] 按鈕。
- 選取並展開 [工作單位],以查看執行中應用程式所提供的計數器。
- 選取列出的計數器:「應用程式擁有者進程識別碼」和「主機進程識別碼」。
- 選取 [所有實例],然後按一下 [新增]。
- 按一下 [確定]。
- 從 [新增計數器]