Dela via


Analysera resursförbrukning och användargränssnittstrådsaktivitet (XAML)

Använd Application Timeline profiler för att hitta och åtgärda prestandaproblem relaterade till programinteraktion i XAML-program. Det här verktyget hjälper till att förbättra XAML-programmets prestanda genom att visa en detaljerad vy över programmets resursförbrukning. Du kan analysera den tid som ditt program lägger på att förbereda gränssnittsramar (layout och återgivning), underhålla nätverks- och diskbegäranden och i scenarier som Programstart, Sidinläsning och Windows-storleksändring.

Tidslinje för program är ett av de verktyg du kan börja med kommandot Debug>Performance Profiler.

Det här verktyget ersätter verktyget XAML UI Responsiveness som ingick i diagnostikverktygen i äldre versioner av Visual Studio.

Du kan använda det här verktyget på följande plattformar:

  • Universella Windows-appar (i Windows 10 och senare)
  • Windows 8.1
  • Windows Presentation Foundation (.NET 4.0 och senare)
  • Windows 7

Anteckning

Du kan samla in och analysera cpu-användningsdata och energiförbrukningsdata tillsammans med ApplicationTimeline- data. Se Kör profileringsverktyg för release- eller debug-versioner.

Samla in tidslinjedata för program

Du kan profilera svarstiden för din app på din lokala dator, ansluten enhet, Visual Studio-simulator eller emulatorer eller en fjärrenhet. Se Kör profileringsverktyg för versions- eller felsökningsversioner.

Tips

Om möjligt kör du appen direkt på enheten. Programprestandan som observeras på simulatorn eller via en anslutning till fjärrskrivbord kanske inte är samma som den faktiska prestandan på enheten. Å andra sidan påverkar insamling av data med hjälp av Visual Studio Remote Tools inte prestandadata.

Här är de grundläggande stegen:

  1. Öppna XAML-appen.

  2. Klicka på Felsökning/Prestandaprofilering. Du bör se en lista över profileringsverktyg i fönstret .diagsession.

  3. Välj Applikationstidslinje och klicka sedan på Start längst ned i fönstret.

    ansökningstidslinjeverktyg har valts

    Not

    Du kan se ett användarkontokontrollfönster som begär din behörighet att köra VsEtwCollector.exe. Klicka på Ja.

  4. Kör det scenario som du är intresserad av att profilera i din app för att samla in prestandadata.

  5. Om du vill stoppa profilering växlar du tillbaka till fönstret .diagsession och klickar på Stoppa överst i fönstret.

    Visual Studio analyserar insamlade data och visar resultatet.

    tidslinjeprofileringsrapport

Analysera data av tidslinjeprofilering

När du har samlat in profileringsdata kan du använda de här stegen för att starta analysen:

  1. Visa informationen i UI-trådutnyttjande och visuell genomströmning (FPS)-diagram och använd sedan tidslinjenavigeringsfältet för att välja ett tidsintervall som du vill analysera.

  2. Med hjälp av informationen i UI-trådhantering eller visuell genomströmning (FPS) grafer, undersöker du detaljerna i tidslinjedetaljer vy för att hitta möjliga orsaker till eventuell brist på responsivitet.

Rapportscenarier, kategorier och händelser

Verktyget Tidslinje för program visar tidsdata för scenarier, kategorier och händelser som är relaterade till XAML-prestanda.

Tidslinje för diagnostiksession

tidslinje för prestanda och diagnostik

Linjalen överst på sidan visar tidslinjen för profilinformation. Den här tidslinjen gäller både för UI-trådanvändning graf och visuellt dataflöde diagram. Du kan begränsa rapportens omfattning genom att dra navigeringsfälten på tidslinjen för att välja ett segment av tidslinjen.

Tidslinjen visar även alla användarmärken som du har infogat och appens aktiveringslivscykelhändelser.

Diagram över UI-trådanvändning

diagram över processoranvändning

Den graf över UI-trådanvändning (%) är ett stapeldiagram som visar den relativa mängden tid som spenderas i en kategori under ett samlingsintervall.

Diagram över visuellt dataflöde (FPS)

diagram över visuellt dataflöde

Det linjediagrammet för visuellt dataflöde (FPS) visar bildrutorna per sekund (FPS) i användargränssnittet och kompositionstråden för appen.

Tidslinjeinformation

I informationsvyn ägnas större delen av tiden åt att analysera rapporten. Den visar cpu-användningen av ditt program som kategoriserats av UI Framework-undersystemet eller systemkomponenten som förbrukade processorn.

Följande händelser stöds:

Namn Beskrivning
parsning Tidsåtgång för att parsa XAML-filer och skapa objekt.

Om du expanderar en parsning nod i tidslinjeinformation visas beroendekedjan för alla XAML-filer som parsades på grund av rothändelsen. Med det här tipset kan du identifiera onödig filparsning och objektskapande i prestandakänsliga scenarier och optimera dem.
Layout I stora program kan tusentals element visas på skärmen samtidigt. Den här visningen kan resultera i en låg UI-bildfrekvens och motsvarande dålig programresponsivitet. Layouthändelsen avgör exakt kostnaden för att lägga ut varje element (dvs. den tid som spenderas i Ordna, Mått, ApplyTemplate, ArrangeOverride och MeasureOverride). Den bygger också de visuella träd som deltog i ett layoutpass. Du kan använda den här visualiseringen för att avgöra vilka logiska träd som ska beskäras eller för att utvärdera andra fördröjningsmekanismer för att optimera din layoutprocess.
Rendera Tid som ägnas åt att rita XAML-element på skärmen.
I/0 Tid som ägnas åt att hämta data från den lokala disken eller från nätverksresurser som nås via api:et Microsoft Windows Internet (WinINet).
App Code Tid som ägnas åt att köra programkod (användare) som inte är relaterade till parsning eller layout.
Xaml Övrigt Tidsåtgång vid körning av XAML-kod.

Tips

Välj verktyget CPU Usage tillsammans med verktyget Application Timeline när du börjar profilera för att visa appmetoder som körs på användargränssnittstråden. Om du flyttar tidskrävande appkod till en bakgrundstråd kan du förbättra UI-svarstiden.

Anpassa tidslinjeinformation

Använd tidslinjeinformation verktygsfältet för att sortera, filtrera och ange anteckningar för tidslinjeinformation visa poster.

Namn Beskrivning
Sortera efter Sortera efter starttid eller längden på händelser.
Gruppera händelser efter bildruta Lägger till eller tar bort en top-nivåkategori som grupperar händelser efter ram.
Filtrera detaljerad tidslinjelista Filtrerar listan efter valda kategorier och längden på händelserna.
Anpassa information om tidslinjen Låter dig ange anteckningar till händelser.