WPF 的效能分析工具
更新:2007 年 11 月
WPF 提供了一套效能分析工具,可讓您分析應用程式的執行階段行為,並判斷可套用的效能最佳化類型。下表列出 Windows SDK 工具 WPFPerf 中包含的五種效能分析工具:
工具 |
說明 |
---|---|
Perforator |
用於分析轉譯行為。 |
Visual Profiler |
用於透過視覺化樹狀結構中的項目,分析 WPF 服務的使用狀況 (例如配置和事件處理)。 |
Working Set Analyzer |
用於分析應用程式的工作集特性。 |
Event Trace |
用於分析事件及產生事件記錄檔。 |
ETW Trace Viewer |
以 WPF 使用者介面格式記錄、顯示及瀏覽 Windows 事件追蹤 (ETW) 記錄檔。 |
這個主題包含下列章節。
- 使用效能分析工具
- Perforator
- Visual Profiler
- Working Set Analyzer
- Event Trace
- ETW Trace Viewer
- 其他效能工具資源
- 相關主題
使用效能分析工具
安裝 Windows SDK 之後,您可以選擇是否要安裝 WPF 效能套件。
注意事項: |
---|
在安裝此效能套件之前,請先移除舊版的 WPFPerf.exe。 |
第一次執行 WPFPerf 時,將會顯示 [Add Tool] 對話方塊:
Add Tool 對話方塊
選擇您要使用的工具,然後按一下 [確定]。
注意事項: |
---|
您必須以系統管理權限執行使用者帳戶,才能使用效能分析工具。 |
Perforator
Perforator 是用來分析轉譯行為的效能分析工具。Perforator 主視窗會顯示一組選項,供您用來分析應用程式某些部分的特定轉譯行為。
Perforator 主視窗
Perforator 可讓您設定許多會影響應用程式即時轉譯行為的選項:
工具 |
說明 |
---|---|
Draw software rendering with purple tint |
使用紫色調的軟體轉譯管線繪製所有轉譯區域,包括軟體轉譯目標、軟體 3D 內容以及個別基本軟體後援。 |
Clear back-buffer before updating |
在每個繪圖作業之前先淸除應用程式視窗。 |
Show dirty region update overlay |
讓系統透過重新著色的方式標明 WPF 對畫面所做的每一項更新。如此您便可查看應用程式中各區域重繪的時間和位置。 |
Disable dirty region support |
讓 WPF 在每次進行變更時重繪整個視窗。一般情況下只會重繪已變更的視窗部分。如果啟用此選項,將會使應用程式的轉譯速度大幅減緩。 |
Disable Opacity effects |
停用可能損耗效能的不透明效果。 |
Disable per-primitive software fallback |
停用個別轉譯基本物件的軟體後援。軟體中繼轉譯目標和其他軟體轉譯則不能停用。 |
Disable high-quality image rescaling |
停用將大型影像調整成較小尺寸的功能。 |
Disable 3D rendering |
停用所有的 3D 轉譯作業。 |
Enable Debug Control 選項
[Enable Debug Control] 核取方塊可以讓您啟用或停用對於 WPF 共用記憶體的存取。根據預設,Perforator 會在啟動時啟用此選項,並於終止時停用此選項。如果發生 Perforator 異常終止的情況,請將它重新啟動,然後再手動取消核取 [Enable Debug Control] 核取方塊,以停用對 WPF 共用記憶體的存取。接著,請重新啟動 Perforator 以及您要分析的 WPF 應用程式。
注意事項: |
---|
如果啟用此選項,可能會造成執行 WPF 應用程式時記憶體使用量略微增加,而效能則小幅下降的結果。您應該確定 Perforator 是否正確停用這個選項。 |
登錄機碼設定
[Enable Debug Control] 核取方塊會加入或刪除 WPF 登錄機碼設定。若要手動加入登錄機碼設定,請從命令提示視窗執行下列命令:
reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f
若要手動刪除登錄機碼設定,請從命令提示視窗執行下列命令:
reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f
使用 Perforator
若要使用 Perforator,請啟動您想分析其轉譯行為的 WPF 應用程式。在應用程式啟動之後,請按一下 Perforator 中的 [Refresh] 按鈕。此時應用程式應該會出現在 Perforator 的 WPF 應用程式清單方塊中。請選取您要分析的應用程式和轉譯選項。Perforator 資料值 (例如畫面播放速率) 將會立即反映出應用程式的轉譯行為。
已選取應用程式和轉譯選項的 Perforator
下列螢幕擷取畫面顯示已啟用 [Draw software rendering with purple tint] 和 [Show dirty region support] 等轉譯選項的 PhotoDemo 範例應用程式:
PhotoDemo 範例應用程式顯示轉譯行為
下列各節將討論與轉譯有關的主要效能問題,以及 Perforator 選項和資料輸出如何協助您診斷這些問題。
避免軟體轉譯
由於 WPF 硬體轉譯管線的速度較其軟體轉譯管線的速度快上許多,因此以軟體轉譯的應用程式 UI 愈少,在該應用程式進行轉譯的速度就愈快。以軟體轉譯區域所需的時間通常與轉譯的像素數目成正比,所以使用軟體管線轉譯較大的區域時請小心,小區域則影響不大。
以下是有助於偵測軟體轉譯問題的 Perforator 選項:
Draw software rendering with purple tint:使用紫色調的軟體轉譯管線繪製所有轉譯區域,包括軟體轉譯目標、軟體 3D 內容以及個別基本軟體後援。
Num Software Render Targets:計算完全以軟體執行之全視窗轉譯目標的數目。如果這個數目不是 0,代表有重大的效能問題,而這個問題通常與電腦組態或層次視窗 (Layered Window) 的存在有關。請確定已啟用 Microsoft Direct3D (執行 dxdiag),確認所有監視器都已設定為 32 位元/像素 (BPP) 的位元深度,並確定 Microsoft DirectX 9.0 可支援圖形卡。
Num Hardware Render Targets:計算以硬體執行之全視窗轉譯目標的數目。這個數目應該等於應用程式的視窗數目乘以顯示器介面卡的數目,代表在可能的情況下應用程式都會以硬體加速。
避免中繼轉譯目標數目過多
***「中繼轉譯目標」***是 WPF 為了準備繪製到螢幕上的內容而必須繪製的額外影像。
- Maximum SW/HW IRTs per Frame:顯示為了轉譯任何一個應用程式框架所套用的軟體或硬體「中繼轉譯目標」數目上限。中繼轉譯目標的產生通常是因為在 Visual 上使用 DrawingBrush、VisualBrush 或 Opacity,或是在 TileBrush 上使用並排顯示模式。如果這個數目非常高,可能表示 WPF 執行階段正在執行大量的應用程式轉譯工作。
實用的效能度量資訊
Dirty Rect Addition rate:表示正在應用程式中觸發快速更新。
Frame rate:報告應用程式轉譯到畫面的速率。如果應用程式沒有動畫,這個值應該趨近於 0,因為除非有必要,否則變更區域最佳化應該避免進行繪製。請將這個數字視為估計值。
Estimated video memory usage:追蹤 WPF 直接進行的影像記憶體大型配置 (紋理和轉譯目標)。此選項不會追蹤指定之視訊驅動程式在轉譯期間所進行的配置、編譯及載入像素著色器 (Pixel Shader) 或頂點著色器 (Vertex Shader) 時所產生的配置,或是頂點或索引緩衝區的配置。請注意,若超過紋理記憶體的可用容量,通常將導致 WPF 轉譯邏輯切換至軟體,也會導致多重顯示器 (多重監視器) 對應用程式所需視訊記憶體容量的影響倍增。
變更區域支援
由於 Windows Presentation Foundation (WPF) 只會在需要時更新視窗部分,因此隨時以視覺化方式呈現正在更新的視窗可能會非常有幫助。下列選項可協助您以視覺化方式呈現更新行為。
Show dirty-region update overlay:讓系統透過重新著色的方式標明 WPF 對畫面所做的每一項更新。如此您便可查看執行中應用程式的重繪區域和重繪的時間。
Clear Back Buffer Before Rendering:讓系統在執行每項繪製作業之前先清除視窗。
Disable Dirty Region Support:讓 WPF 在每次進行變更時重繪整個視窗,而不是只重繪已經變更的視窗部分。這對於強制更新整個視窗非常有用,但請注意,啟用此選項將導致應用程式的轉譯速度變慢許多。
停用轉譯功能
Perforator 可以讓您停用特定會耗損效能的作業,以確定它們是否造成應用程式的瓶頸。
Disable Opacity Effects:停用使用可能損耗效能的不透明效果。一般情況下,若要避免這個效能問題,請考慮在低階物件 (例如 Brush) 上設定不透明度,而不要在高階物件 (例如 Button) 上進行設定。
Disable per-primitive software fallback:停用個別轉譯基本物件的軟體後援。軟體中繼轉譯目標和其他軟體轉譯則不能停用。
Disable high-quality image rescaling:如果以較小的尺寸顯示大型影像,WPF 會調整影像以改善其外觀。這項作業將會耗損效能,尤其是當應用程式中包含許多以縮小尺寸顯示在畫面上的大型影像時。這個選項可以讓您停用這種調整功能,以確定它是不是效能問題的根源。若要避免這種問題,請考慮將影像解碼成接近顯示大小的尺寸。
Disable 3D rendering:關閉所有的 3D 繪製作業。
Visual Profiler
Visual Profiler 是一套效能工具,可以透過視覺化樹狀結構中的項目,分析 WPF 服務的使用狀況 (例如配置和事件處理)。您可以透過分析這項工具的分析輸出,判斷應用程式中的哪些視覺項目可能會造成效能瓶頸。Visual Profiler 主視窗會顯示一組選項,供您指定分析應用程式的方式:
Update interval:分析期間所使用的時間精細度。
Display overlay:[Display overlay] 選項可讓您顯示 CPU 資源使用量;深紅色的重疊部分代表較多的 CPU 資源。
Visual Profiling 的值
WPF Visual Profiler 可呈現用來建構應用程式中視覺畫面之基本建置組塊內容的效能問題。這些建置組塊包括高階物件 (例如 Button 和 TextBlock 控制項),以及低階物件 (例如 Line 和 Ellipse 項目)。在描述效能問題時,Visual Profiler 使用的是視覺物件表示法,而不是函式名稱的呼叫圖形。這種方法與 Windows SDK 工具 UI Spy 呈現資訊的方法十分類似。如需詳細資訊,請參閱 UI Spy (UISpy.exe)。
為了分析 WPF 效能問題的廣度,您必須了解基礎 WPF 服務的角色和範圍。這些服務包括配置、轉譯和動畫。Visual Profiler 會以圖形表示 WPF 服務在應用程式物件之間的配置情況。例如,當 Visual Profiler 顯示應用程式物件的視覺化樹狀結構時,它會將不同深淺度的紅色網底重疊在物件上,藉以呈現物件正在使用的相對資源數量。以深紅色重疊顯示的物件代表該物件的資源用量比例高於以淺紅色重疊的物件。更重要的是,Visual Profiler 還提供了物件所佔用之特定 WPF 資源數量的細目。
使用 Visual Profiler
若要使用 Visual Profiler,請按一下 [Start Profiling] 按鈕,並選擇 [Launch] 或 [Attach]。您必須以系統管理權限執行 WPFPerf 和所要分析的應用程式,才能使用 [Attach] 選項。此外,由於重疊功能已停用,且 [Attach] 選項適用的事件也較少,因此建議您使用 [Launch] 選項。
[Events] 索引標籤可讓您選擇想要分析的應用程式和項目事件。
您可以設定 Visual Profiler 組態,以啟用或停用下列應用程式事件的分析作業。若事件本身即為方法,將以方法名稱後面加上括號的類別名稱來表示這些事件。例如「Tick (TimeManager)」即代表 TimeManager.Tick 方法。
應用程式事件 |
說明 |
---|---|
RenderMessageHandler (MediaContext) |
啟始轉譯行程。除了其他方法之外,還會呼叫 TimeManager.Tick 和 MediaContext.Render。 |
Rendering Thread |
在對轉譯執行緒執行轉譯指令時發生。這可用來偵測轉譯繫結應用程式。 |
Layout |
在測量、排列及轉譯行程期間發生。 |
UpdateRealizations |
在更新文字及點陣圖效果的內部點陣圖表示時發生。 |
Tick (TimeManager) |
在動畫播放時發生。這個事件可以觸發動畫轉譯處理常式。 |
UpdateEffectiveValue (DependencyObject) |
在屬性引擎變更 DependencyProperty 的值時發生。 |
Hit Testing |
在點擊測試行程期間發生,此行程可確定已點擊的視覺物件。 |
AnimatedRenderMessageHandler (MediaContext) |
啟用動畫時,此處理常式便會處理及更新動畫,因此會造成屬性變更,並進行轉譯。 |
Render (MediaContext) |
在轉譯行程期間發生。這個方法最後會呼叫每個項目的 OnRender 方法,而且對於了解所有項目的 OnRender 總成本非常有幫助。這個事件對應於 Visual Studio Profiler (VSP) 檔案中的 MediaContext.Render 方法。 |
FormatLineInternal (TextFormatterImp) |
在格式化文字時發生。 |
MarkVisibleRealizations (Visual) |
在偵測文字的內部點陣圖表示以及當需要更新點陣圖效果時發生。 |
您可以設定 Visual Profiler 組態,以啟用或停用下列項目事件的分析作業:
項目事件 |
說明 |
---|---|
Layout |
在測量、排列及轉譯行程期間發生。 |
MarkVisibleRealizations (Visual) |
在偵測文字的內部點陣圖表示以及當需要更新點陣圖效果時發生。 |
UIElement.OnRender |
UIElement 轉譯作業。 |
UIElement Layout |
UIElement 配置作業。 |
完成選取應用程式和分析選項的程序之後,請按一下 [確定] 按鈕,開始分析應用程式。
請同步執行您的應用程式和 Visual Profiler 工具,並注意工具中變更的值。您可以展開視覺化樹狀結構階層架構,選取要分析的特定視覺物件,例如 Grid 控制項。Visual Profiler 的 [CPU Usage] 區段提供了物件及應用程式使用 WPF 服務的精確細目。該項目的 [CPU Utilization] 資料列出下列資訊:
Inclusive Time:項目及其所有子代 (Descendant) 的 CPU 使用率。
Exclusive Time:項目本身的 CPU 使用率。
Visual Profiler 顯示輸出
Visual Profiler 會將不同的紅色網底重疊在視覺化樹狀結構中的物件上,以呈現物件正在使用的相對資源數量。以深紅色重疊顯示的物件代表該物件的資源用量比例高於以淺紅色重疊的物件。
Working Set Analyzer
Working Set Analyzer 是 WPF 效能分析工具,可以提供指定之處理序的記憶體使用量相關資訊。這套工具可以讓您產生特定應用程式狀態之應用程式記憶體使用量資訊的快照 (Snapshot)。
應用程式的工作集
應用程式的工作集是其虛擬位址空間中最近曾經參考的所有頁面集合,包括共用和私用 (Private) 資料。共用資料包括內含應用程式執行之所有指令 (包括您的 DLL 和系統 DLL 中的指令) 的頁面。隨著工作集大小增加,記憶體的需求也會增加。如需工作集的詳細資訊,請參閱處理工作集。
Virtual Address Dump (VaDump) 公用程式
Virtual Address Dump (VaDump) 可建立一份清單,內含指定之處理序的記憶體使用量相關資訊。這套工具位於下列目錄中:
~\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt
重要事項: |
---|
您必須確認系統執行路徑包括 VaDump 的目錄位置,否則工 Working Set Analyzer 將無法正確運作。 |
使用 Working Set Analyzer
若要使用 Working Set Analyzer,請啟動您要分析的 WPF 應用程式。在您啟動 Working Set Analyzer 之後,請選擇 [Select Process] 選項:
Working Set Analyzer 的 Select Process 對話方塊
選取您要分析其工作集的處理序,然後按一下 [Capture] 按鈕。Working Set Analyzer 會先叫用 (Invoke) VaDump 來產生記憶體使用量資訊,接著再剖析資訊,並以豐富的圖形格式來呈現資訊。
注意事項: |
---|
工作集資料呈現的是記憶體使用量的靜態檢視。您可以在應用程式的不同點產生幾組工作集資料,並比較其記憶體使用量的差異。 |
當工作集資料就緒可以進行檢視時,Working Set Analyzer 便會產生代表動態資料、系統資料和應用程式模組的樹狀檢視。
Working Set Analyzer 記憶體使用量分類
WPF 應用程式的 WPF 模組分類包含 WPF 的系統專屬模組。請按一下您要顯示的分類,顯示一組圓形圖。例如,按一下 WPF 模組分類後,視窗左側便會顯示下列資訊:
WPF 模組的 Working Set Analyzer 記憶體使用量圓形圖
最上面的標題列會顯示工作集分類的總大小。在這個案例中,WPF 模組代表 9160 KB 的記憶體使用量。這張圓形圖呈現的是定義 WPF 模組分類之所有模組的個別記憶體使用量。
注意事項: |
---|
記憶體使用量大小分類會反映出應用程式在擷取工作集資訊時的記憶體使用量。 |
小型資料表代表共用、可共用和私用位元組的記憶體使用量。
Working Set Analyzer 記憶體使用量資料表
共用位元組分類代表其他 WPF 應用程式可能可以共用的記憶體數量。
檢視應用程式記憶體使用量
若要檢視應用程式的記憶體使用量,請從工作集樹狀檢視的 [其他模組] 分類中選取可執行檔的名稱。
Working Set Analyzer 記憶體使用量分類
儲存及重新載入 Working Set Analyzer 檔案
若要儲存目前的工作集使用量資訊,請從 [Working Set Analyzer] 的主功能表選取 [File],然後按一下 [Save VADump output] 按鈕。儲存工作集使用量資訊之後,您可以按一下 [Capture] 按鈕,產生另一個記憶體使用量快照。若要重新載入包含 VADump 內容的檔案,請從 [Working Set Analyzer] 的主功能表選取 [File],然後按一下 [Open VADump output] 按鈕。
使用計時器延遲擷取工作集資訊
Working Set Analyzer 提供的時間延遲功能可以讓您擷取指定時間間隔之後的工作集使用量資訊。請從 [Working Set Analyzer] 的主功能表選取 [Actions],然後按一下 [Launch Process…] 按鈕。
如有需要,請使用 [Browse] 按鈕指定要執行的應用程式。接著,請輸入應用程式的任何引數。最後再輸入想要延遲擷取記憶體使用量資訊的秒數,然後按一下 [Launch] 按鈕。Working Set Analyzer 底部的狀態文字隨即開始倒數開始擷取前的剩餘秒數,使您有時間可以修改應用程式的狀態。擷取完成之後,狀態文字將會顯示 [Done]。
Event Trace
Windows 事件追蹤 (ETW) 是高效率的核心層級追蹤工具,可讓您將核心或應用程式定義的事件記錄到記錄檔。您可以即時使用事件或從記錄檔取用事件,然後再利用這些事件來偵錯應用程式,或是找出應用程式中發生效能問題的地方。WPF Event Trace 分析工具使用 ETW 來記錄事件。如需 ETW 的詳細資訊,請參閱事件追蹤。
Event Trace 是 WPF 效能分析工具套件 WPFPerf (WpfPerf.exe) 的一部分。如需詳細資訊,請參閱使用效能分析工具一節。
使用 Event Trace
[Event Trace] 主視窗會顯示一組選項,供您用來新增、儲存及檢視事件記錄資訊:
Event Trace 主視窗
新增事件記錄器
若要新增事件記錄器,請在 [Event Trace] 主視窗中按一下 [Add] 按鈕。[Add New Logger] 對話方塊隨即顯示一組資訊供您定義。[Logger Name] 係指記錄器的使用者易記名稱。請從標示為 [GUID] 的下拉式清單方塊中選取其中一種事件記錄器類型 (共四種):
NT Kernel Logger
Common Language Runtime Garbage Collection
Windows Presentation Foundation - Performance Only
Windows Presentation Foundation -All
WPF 事件記錄器有兩種;「Performance Only」版本是「All」版本的縮減子集。[Log File] 可供您定義事件記錄檔的檔案名稱。請按一下標示為省略符號 (…) 的按鈕來定義檔案名稱。事件記錄檔使用的預設副檔名為 "etl"。
[Level] 選項係指您可以使用的下列嚴重性層級。數字愈高代表您可同時取得較低的層級。例如,如果指定 3,您也會收到所有的警告、錯誤和嚴重事件:
層級 |
說明 |
---|---|
1 |
異常結束或終止事件。 |
2 |
嚴重的錯誤事件。 |
3 |
配置失敗之類的警告事件。 |
4 |
進入或結束事件之類的非錯誤事件。 |
5 |
詳細的追蹤事件。 |
[Flags] 選項會指定 WPF 事件的類別。預設值通常便已足夠應付大部分的情況。
當您完成建立新事件記錄資訊的程序之後,請按一下 [Add New Logger] 對話方塊中的 [Add] 按鈕,將記錄器加入至 Event Trace。您可以建立其他事件記錄器,並將它們加入至 Event Trace。完成加入所有事件記錄器之後,請按一下 [Done] 按鈕。
Add New Logger 對話方塊
若要移除特定事件記錄器,請在清單方塊中選取事件記錄器,再按一下 [Remove] 按鈕。若要移除所有事件記錄器,請按一下 [Clear] 按鈕。
啟用事件記錄
從 [Event Trace] 主視窗的事件記錄器清單中選取事件記錄器。接著,請按一下 [Start] 按鈕,啟用記錄功能。此時事件記錄器的狀態應該顯示成 [Enabled]。
已選取事件記錄器的 Event Trace 主視窗
完成記錄應用程式事件之後,請按一下 [Stop] 按鈕。您可能需要檢視事件記錄檔,才能確認是否已經擷取事件記錄資訊。請按一下 [Open Log] 按鈕來檢視事件記錄檔。
包含事件記錄資訊的 Event Trace 主視窗
事件記錄檔會針對每個事件列出五個資訊資料行。
資料行 |
說明 |
---|---|
Time |
CPU 週期的目前時間。 |
Guid |
對應到事件的 GUID。 |
Name |
事件名稱。 |
Event type |
資訊、開始或結束事件。開始事件都有對應的結束事件。 |
Data |
特定事件類型的相關資料。 |
這種格式的事件記錄資訊不是很有用。請使用 WPF ETW Trace Viewer 分析工具來分析使用 Event Trace 所建立之事件記錄檔的輸出。
ETW Trace Viewer
Windows 事件追蹤 (ETW) 提供一種機制,可以用於追蹤及記錄由使用者模式應用程式所引發的追蹤和記錄事件。ETW 是在 Windows 作業系統中實作,可為程式開發人員提供一組快速、可靠且具有多種用途的事件追蹤功能。Event Trace 工具可讓您以 WPF 特有的功能的使用者介面格式來記錄、顯示及瀏覽 ETW 記錄檔。
ETW 追蹤檢視主視窗
使用 ETW Trace Viewer
您可以檢視使用 WPFEvent Trace 分析工具所建立及儲存的 ETW 記錄檔。事件記錄檔使用的預設副檔名為 "etl"。請從 [ETW Trace Viewer] 的主功能表選取 [File],然後再按一下 [Open],載入需要的記錄檔。
包含記錄檔的 ETW Trace Viewer 主視窗
載入記錄檔之後,ETW Trace Viewer 將會顯示代表事件記錄擷取期間的時刻表;您可以將時刻表的度量單位改成秒或毫秒。您也可以透過啟用或停用特定事件類型,選擇自己想要檢視的事件類型。如果您想檢視的事件類型較少,可以按一下 [Disable All] 按鈕,停用所有的事件,然後再按一下想要啟用之事件的核取方塊。時刻表的已啟用事件類型將會出現在 ETW Trace Viewer 的右下角。
您可以在時刻表上按一下並拖曳滑鼠,只檢視所選時刻表區間所發生的事件。若要放大所選的時刻表區間,請按一下滑鼠右鍵,顯示下列螢幕擷取畫面中所示的快顯功能表。
包含快顯功能表的 ETW Trace Viewer 主視窗
這個快顯功能表可以讓您放大及縮小時刻表,也可以用來顯示所有的事件及清除目前選取的時刻表區間。當您放大時刻表時,顯示成藍色的時間間隔代表已放大之時刻表的長度,而其下方顯示成黑色的時間間隔則代表事件記錄擷取的時間 (相對於完整的期間)。
已放大資料的 ETW Trace Viewer 主視窗
您可以按一下時刻表上的小方塊來顯示特定事件的相關資訊。
產生事件記錄檔
您也可以使用 ETW Trace Viewer 來建立 ETW 記錄檔,方法是按一下 [Start capture] 按鈕來開始進行事件記錄,然後再按一下 [Stop capture] 按鈕來結束事件記錄。使用這種方法產生的事件記錄器並不允許您自訂篩選事件的設定值。請使用 Event Trace 工具來建立自訂事件記錄器。
其他效能工具資源
Windows Presentation Foundation (WPF) 也提供偵錯追蹤支援。
WPF 的偵錯追蹤支援
PresentationTraceSources 類別提供了 Windows Presentation Foundation (WPF) 應用程式的偵錯追蹤支援。追蹤是一種診斷系統,您可藉由這種系統來掌握應用程式的進度。追蹤陳述式 (Statement) 會報告資訊,其方式與常用的 WriteLine 方法非常類似。不過,您可以使用組態檔來開啟或關閉追蹤陳述式。此外,您也可以自訂追蹤陳述式的輸出。
如需其他相關的 .NET Framework 診斷類別,請參閱 System.Diagnostics。