在一些字典綁定中,往往為了方便展示詳細數據,需要把一些結構樹展現在樹列表TreeList控制項中或者下拉列表的樹形控制項TreeListLookUpEdit控制項中,為了快速的處理數據的綁定操作,比較每次使用涉及太多細節的操作,我們可以把相關的數據綁定操作,放在一些輔助類的擴展函數中進行處理,這樣可以更方... ...
優化響應行為的交互
下載WINDOWS評估和部署工具包 (Windows ADK)
保持預設安裝
驅動延遲優化的基本步驟包括:
- 定義方案並添加 TraceLogging 事件。TraceLogging 是用於日誌記錄事件的系統,無需清單即可解碼,TraceLogging基於windows事件跟蹤(ETW),並提供檢測代碼的簡化辦法。C#可選的有.NET EventSource類,WinRT有LoggingChannel,社區支持的TraceLoggingDynamic。
- 根據交互類設置目標,用戶對應用的性能和響應能力有不同的期望。
- 若要檢查特定交互的確切持續時間,可以使用 Windows 性能分析器 (WPA) 捕獲和分析跟蹤。
- 分析跟蹤並查找改進機會。
學習使用TraceLogging
-
創建EventSource,創建 EventSource 類的實例。 第一個構造函數參數標識此提供程式的名稱。
private static EventSource log = new EventSource("TraceLoggingProvider");
實例標註為靜態,因為一次應用程式中只有一個特定提供程式的一個實例。
-
日誌TraceLogging事件
log.Write("Event 1"); log.Write("Event 2", new { someEventData = DateTime.Now }); ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now }; log.Write("Event 3", EventData); [EventData] public sealed class ExampleStructuredData { public int TransactionID { get; set; } public DateTime TransactionDate { get; set; } }
註意下麵的
這個Name是你的提供程式記錄事件。- 把下麵的文件保存成.WPRP尾碼,名字隨便起。
<?xml version="1.0" encoding="utf-8"?> <!-- TODO: 1. Find and replace "TraceLoggingProvider" with the name of your provider. 2. See TODO below to update GUID for your event provider --> <WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation"> <Profiles> <EventCollector Id="EventCollector_TraceLoggingProvider" Name="TraceLoggingProvider"> <BufferSize Value="64" /> <Buffers Value="4" /> </EventCollector> <!-- TODO: 1. Update Name attribute in EventProvider xml element with your provider GUID, eg: Name="0205c616-cf97-5c11-9756-56a2cee02ca7". Or if you specify an EventSource C# provider or call TraceLoggingRegister(...) without a GUID, use star (*) before your provider name, eg: Name="*MyEventSourceProvider" which will enable your provider appropriately. 2. This sample lists one EventProvider xml element and references it in a Profile with EventProviderId xml element. For your component wprp, enable the required number of providers and fix the Profile xml element appropriately --> <EventProvider Id="EventProvider_TraceLoggingProvider" Name="*TraceLoggingProvider" /> <Profile Id="TraceLoggingProvider.Verbose.File" Name="TraceLoggingProvider" Description="TraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose"> <Collectors> <EventCollectorId Value="EventCollector_TraceLoggingProvider"> <EventProviders> <!-- TODO: 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider xml element above --> <EventProviderId Value="EventProvider_TraceLoggingProvider" /> </EventProviders> </EventCollectorId> </Collectors> </Profile> <Profile Id="TraceLoggingProvider.Light.File" Name="TraceLoggingProvider" Description="TraceLoggingProvider" Base="TraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" /> <Profile Id="TraceLoggingProvider.Verbose.Memory" Name="TraceLoggingProvider" Description="TraceLoggingProvider" Base="TraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" /> <Profile Id="TraceLoggingProvider.Light.Memory" Name="TraceLoggingProvider" Description="TraceLoggingProvider" Base="TraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" /> </Profiles> </WindowsPerformanceRecorder>
- 打開CMD使用管理員進入到你保存XML的路徑啟動wpr.exe
"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPR.exe" -start MyEventSourceProvider.WPRP
5. 允許包含事件的應用程式。
6. 停止跟蹤捕獲
"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPR.exe" -stop TraceCaptureFile.etl description
使用windows 性能分析器查看TracLogging數據
在剛纔的目錄下生成一個.etl文件,WPA是目前唯一可以查看TracLogging文件的查看器
- 啟動WPA, 載入文件
"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPA.exe" TraceCaptureFile.etl - 查看提供程式事件。在WPA圖形資源管理器中,展開“系統活動(System Activity)”。
- 雙擊“泛型事件(Generic Events)”中的分析窗格中的事件。
- 在分析窗格中,找到提供程式的事件,驗證TraceLogging是否正常工作。
Microsoft Windows [版本 10.0.22621.1555]
(c) Microsoft Corporation。保留所有權利。
C:\Users\Administrator>cd D:\WinUI3\TraceLogging
C:\Users\Administrator>d:
D:\WinUI3\TraceLogging>"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPR.exe" -start MyEventSourceProvider.WPRP
D:\WinUI3\TraceLogging>"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPR.exe" -stop TraceCaptureFile.etl description
D:\WinUI3\TraceLogging>"C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WPA.exe" TraceCaptureFile.etl
- 在分析視窗中,可以看到我們創建的TraceLoggingProvider的Event1、Event2、Event3。
圖床不能用了。沒有圖了,自己測試一下就好了。
後續的資料。
Windows 性能分析器 | Microsoft Learn