1.收集器定義
Windows Performance Recorder (WPR) 目前支援三種收集器:系統收集器、事件收集器及堆積事件收集器。 系統收集器定義會指定 Windows 事件追蹤的緩衝區大小和其他屬性, (ETW) 與 NT 核心記錄器一起運作的系統記錄器會話。 事件和堆積收集器定義會指定 ETW 使用者會話的緩衝區大小和其他屬性。
收集器定義順序受限於 WPR 架構。 在 .wprp 檔案中,系統收集器定義必須在事件收集器定義之前。 如果堆積收集器定義存在) ,則這些定義必須在堆積收集器定義之前 (。 WPR 架構定義于 WPRControlProfiles 架構中。
收集器屬性
收集器具有下列必要屬性:
識別碼:參考 .wprp 檔案中收集器定義的唯一字串識別碼。
名稱:收集器的名稱;例如,「WPR 收集器」。 系統收集器名稱必須是 「NT Kernel Logger」。
收集器定義必須包含下列緩衝區大小定義:
BufferSize:指定單一緩衝區的大小,以 KB 為單位 (KB) 。
緩衝區:指定緩衝區數目,如果 PercentageOfTotalMemory 屬性設定為 「true」,則為要用於緩衝的總記憶體百分比。
如需緩衝區的詳細資訊,請參閱 記錄模式。
收集器定義範例
下列程式碼範例顯示系統收集器定義和事件收集器定義。
<SystemCollector
Id="WPRSystemCollector"
Name="NT Kernel Logger"
FileName="WPRKernel.etl">
<BufferSize
Value="512"/>
<Buffers
Value="3"
PercentageOfTotalMemory="true"/>
</SystemCollector>
<EventCollector
Id="WPREventCollector"
Name="WPR Event Collector"
FileName="somefilename.etl">
<BufferSize
Value="128"/>
<Buffers
Value="64"/>
</EventCollector>
<HeapEventCollector
Id="Base_Heap_Collector"
Name="Base Heap Collector"
FileName="heap.etl">
</HeapEventCollector>
繼承範例
Windows Performance Recorder 支援使用 Base=""
WPR 設定檔 XML 架構中的 屬性繼承其物件。 這可讓新增或特製化物件在新增重複使用通用定義時逐漸建置。
在某些情況下,可能會發生非預期的複雜度和副作用;本節說明範例和建議的最佳做法。
範例 1
如果設定檔設定檔 A想要使用事件收集器收集器 A搭配一些修改,它可以定義衍生自收集器 A (Base=「Collector A」) 的收集器收集器A2,然後參考該收集器 A2。 建議這樣做,因為只有收集器物件衍生自另一個收集器物件,而且會直接參考它。
範例 2
設定檔 設定檔 A 參考收集 器 A。另一個設定檔 設定檔 B 需要對 設定檔 A 進行變更,使其衍生自設定檔 A,並直接在其定義中指定其變更。 建議這樣做,因為只有設定檔物件衍生自另一個設定檔物件。
範例 3
設定檔設定檔 A參考收集器 A。收集器收集器 A2衍生自收集器 A。最後,設定檔 B衍生自設定檔 A,也參考設定檔 B父設定檔中已參考的收集器 A。
在此情況下,應該如何評估 收集器 A2 的定義模棱兩可。 在一種情況下,設定檔衍生優先,而在另一個收集器衍生中則優先。 不建議這樣做,因為排序未定義,而且可能會根據作業順序導致不同的結果。
根據這個,您絕對不應該將衍生結合到多個物件類型。