Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet beskriver hur du använder prestandaövervakningsverktyg från Windows Performance Toolkit för att skapa djupgående prestandaprofiler för WinUI-program.
Hur använder jag Windows Performance Recorder för att övervaka WinUI-appar?
Windows Performance Recorder (WPR) kan användas för att skapa detaljerade ETW-inspelningar (Event Tracing for Windows) för system- och programbeteende och resursanvändning baserat på inbyggda profiler. Dessa ETW-inspelningar kan sedan bearbetas av Windows Performance Analyzer (WPA) för att skapa en uppsättning grafer och tabeller för enklare förbrukning och djupgående analys av CPU-användning, energiproblem, dålig system- eller programprestanda och andra prestandaproblem.
Anmärkning
Även om det finns både GUI- och kommandoradsversioner av WPR refererar det här avsnittet endast till GUI-versionen (se Introduktion till WPR för mer information om båda versionerna).
WPR-profiler
WPR-profiler används för att samla in information om olika aspekter och beteenden i din app.
I följande bild visas fönstret Windows Performance Recorder med profilen "CPU-användning" (CPU-användning för varje processor i systemet) och profilen "XAML-aktivitet" (händelser från XAML-relaterade leverantörer, till exempel WinUI) valda.
Hur använder jag Windows Performance Analyzer med WinUI-appar?
WinUI är ett deklarativt API för behållet läge där appen beskriver ett träd med UIElements och WinUI kör layout och renderar det. Detta görs på användargränssnittstråden i batchar som kallas "frames", som bör slutföras snabbt, helst inom ett uppdateringsintervall för skärmen. När bildrutorna körs länge fördröjs inte bara uppdateringar från att komma till visningen, utan förhindrar också att användargränssnittstråden hanterar indata. Även om långsamma ramar inte är den enda orsaken till responsivitetsproblem, är de en av de vanligaste.
Installera plugin-programmet "XAML Frame Analysis"
WinUI loggar ETW-händelser som spårar start och stopp för varje bildruta (visas i följande skärmbild av wpa-tabellen "Allmänna händelser"). Men eftersom varaktigheten för varje bildruta måste beräknas manuellt är det svårt att identifiera långsamma bildrutehändelser.
För att lösa det här problemet ingår ett nytt plugin-program för XAML-ramanalys i Windows Assessment Toolkit (ADK) 10.1.26100.1 och senare. Den här tabellen beräknar och visar varaktigheten för varje bildruta (tillsammans med andra tidskrävande åtgärder).
Anmärkning
Tabellen "XAML Frame Analysis" kräver Windows Performance Analyzer (WPA) från Windows ADK 10.1.26100.1 eller senare. Vilken version av WPR som används för att ta spårningen spelar ingen roll.
När ADK har installerats måste tabellen "XAML Frame Analysis" aktiveras genom att redigera konfigurationsfilen "perfcore.ini" i WPA-mappen (vanligtvis C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit). Det gör du genom att stänga alla öppna instanser av WPA, öppna "perfcore.ini" i en textredigerare, lägga till perf_xaml.dll i listan över dlls och spara och stänga filen. Starta om WPA, som nu ska visa diagrammet "XAML Frame Analysis" längst ned i avsnittet Systemaktivitet.
Använda plugin-programmet "XAML Frame Analysis"
Xaml Frame Analysis stöder två vyer (båda vyerna visar samma kolumner):
- "Intressanta Xaml-ramar" (standard) – Visar WinUI-ramar baserat på heuristik som identifierar de som mest sannolikt orsakar svarstider. Dessa motsvarar regioner som börjar med åtgärder som WinUI-initiering, ramnavigering eller utfällbara bildskärmar och slutar med slutet av nästa bildruta. Dessa scenarier omfattar vanligtvis omfattande ändringar i UIElement-trädet och är de mest mottagliga för prestandaproblem.
- "All Xaml Info" – Visar alla WinUI-ramar från alla processer som finns i spårningen. För åtgärder som en ram eller ett layoutpass beräknar plugin-programmet automatiskt och visar varaktigheterna baserat på start- och stopphändelserna.
Följande skärmbild visar hur du växlar mellan Xaml Frame Analysis-vyer.
Båda Xaml Frame Analysis-vyerna innehåller följande kolumner:
| Titel | Värde |
|---|---|
| Bearbeta | Processnamn och ID |
| Tråd-ID | Tråd-ID |
| Type | Beskriver händelsen som motsvarar raden. Möjliga värden är:
|
| ÄrIntressant | Om raden anses vara intressant. Endast intressanta rader visas i vyn för Intressanta Xaml-ramar. |
| Varaktighet (ms) | Varaktigheten för raden. Beräknas från start- och stopphändelser. |
| Vikt (ms) | Den faktiska CPU-exekveringstiden som motsvarar varaktigheten. |
| Starta (s) | Tidpunkten för starthändelsen |
| Stoppa (s) | Tidpunkten för stop-händelsen |
Kolumner kan sorteras efter typ eller varaktighet för att identifiera potentiella problem, till exempel de dyraste, längsta varaktighetsramarna i spårningen (se följande bild). Du kan också öka detaljnivån i specifika rader för att identifiera de dyra åtgärderna och potentiella optimeringar.
Windows developer