Resourceverbruik en UI-threadactiviteit analyseren (XAML)
Gebruik de Application Timeline profiler om prestatieproblemen met betrekking tot toepassingsinteractie in XAML-toepassingen te vinden en op te lossen. Dit hulpprogramma helpt de prestaties van de XAML-toepassing te verbeteren door een gedetailleerde weergave van het resourceverbruik van de toepassingen weer te geven. U kunt de tijd analyseren die door uw toepassing is besteed aan het voorbereiden van UI-frames (indeling en render), het onderhouden van netwerk- en schijfaanvragen, en in scenario's zoals opstarten van toepassingen, pagina laden en Het formaat van Windows wijzigen.
Application Timeline is een van de hulpprogramma's waarmee u de opdracht Debug>Performance Profiler kunt starten.
Dit hulpprogramma vervangt de XAML UI-responsiviteit hulpprogramma dat deel uitmaakte van de diagnostische toolset in oudere versies van Visual Studio.
U kunt dit hulpprogramma gebruiken op de volgende platforms:
- Universele Windows-apps (op Windows 10 en hoger)
- Windows 8.1
- Windows Presentation Foundation (.NET 4.0 en hoger)
- Windows 7
Notitie
U kunt gegevens over het CPU-gebruik en het energieverbruik verzamelen en analyseren, samen met de ApplicationTimeline--gegevens. Zie Hulpprogramma's voor profilering uitvoeren op release- of debugbuilds.
Tijdlijngegevens voor toepassingen verzamelen
U kunt de reactiesnelheid van uw app op uw lokale computer, verbonden apparaat, Visual Studio-simulator of emulators of een extern apparaat profileert. Zie Hulpprogramma's voor profilering uitvoeren op builds voor release of foutopsporing.
Tip
Voer de app indien mogelijk rechtstreeks op het apparaat uit. De prestaties van de toepassing die zijn waargenomen op de simulator of via een verbinding met een extern bureaublad, zijn mogelijk niet hetzelfde als de werkelijke prestaties op het apparaat. Het verzamelen van de gegevens met behulp van visual Studio Remote Tools heeft daarentegen geen invloed op de prestatiegegevens.
Dit zijn de basisstappen:
Open uw XAML-app.
Klik op foutopsporing/prestatieprofiler. U ziet nu een lijst met profileringshulpprogramma's in het venster .diagsession.
Selecteer toepassingsschema en klik vervolgens op Start onderaan het venster.
Notitie
Mogelijk ziet u een venster Gebruikersaccountbeheer dat uw toestemming vraagt om VsEtwCollector.exeuit te voeren. Klik op Ja.
Voer het scenario uit waarin u geïnteresseerd bent in profilering in uw app om prestatiegegevens te verzamelen.
Als u de profilering wilt stoppen, gaat u terug naar het venster .diagsession en klikt u op Stop boven aan het venster.
Visual Studio analyseert de verzamelde gegevens en geeft de resultaten weer.
Tijdlijnprofileringsgegevens analyseren
Nadat u de profileringsgegevens hebt verzameld, kunt u deze stappen gebruiken om uw analyse te starten:
Bekijk de informatie in de UI-threadgebruik en Visuele doorvoer (FPS) grafieken en gebruik vervolgens de navigatiebalken van de tijdlijn om een tijdsbereik te selecteren dat u wilt analyseren.
Met behulp van de informatie in de UI-threadgebruik of visuele doorvoer (FPS) grafieken, onderzoekt u de gegevens in de tijdlijndetails weergave om mogelijke oorzaken voor een schijnbaar gebrek aan responsiviteit te vinden.
Scenario's, categorieën en gebeurtenissen rapporteren
In het hulpprogramma Application Timeline worden tijdsgegevens weergegeven voor scenario's, categorieën en gebeurtenissen die betrekking hebben op de prestaties van XAML.
Tijdlijn voor diagnostische sessie
tijdlijn voor
De liniaal boven aan de pagina toont de tijdlijn voor geprofileerde informatie. Deze tijdlijn is van toepassing op zowel de UI-threadgebruiksgrafiek als de visuele doorvoergrafiek. U kunt het bereik van het rapport beperken door de navigatiebalken op de tijdlijn te slepen om een segment van de tijdlijn te selecteren.
In de tijdlijn worden ook gebruikersmarkeringen weergegeven die u hebt ingevoegd en de levenscyclusgebeurtenissen voor de activering van de app.
Grafiek voor het gebruik van ui-threads
Het UI-threadgebruik (%)-grafiek is een staafdiagram dat de relatieve hoeveelheid tijd weergeeft die tijdens een verzamelingsperiode aan een categorie is besteed.
Beeldweergavesnelheid (FPS) grafiek
In de grafiek Visuele doorvoer (FPS) lijndiagram worden de frames per seconde (FPS) weergegeven in de gebruikersinterface en samenstellingsthread voor de app.
Tijdlijndetails
De detailweergave is de plek waar u de meeste tijd besteedt aan het analyseren van het rapport. Het toont het CPU-gebruik door uw toepassing die is gecategoriseerd door het UI Framework-subsysteem of het systeemonderdeel dat de CPU heeft verbruikt.
De volgende gebeurtenissen worden ondersteund:
Naam | Beschrijving |
---|---|
parseren | Tijd besteed aan het parseren van XAML-bestanden en het maken van objecten. Als u een knooppunt parseren in tijdlijngegevens uitbreidt wordt de afhankelijkheidsketen weergegeven van alle XAML-bestanden die zijn geparseerd vanwege de hoofdgebeurtenis. Met deze tip kunt u onnodige bestandsparsering en het maken van objecten identificeren in prestatiegevoelige scenario's en deze optimaliseren. |
indeling | In grote toepassingen kunnen duizenden elementen tegelijkertijd op het scherm worden weergegeven. Deze weergave kan leiden tot een lage UI-framesnelheid en een overeenkomstig slechte reactiesnelheid van de toepassing. De lay-out-gebeurtenis bepaalt nauwkeurig de kosten voor het indelen van elk element (dat wil gezegd de tijd die wordt besteed aan Rangschikken, Meten, ApplyTemplate, ArrangeOverride en MeasureOverride). Het bouwt ook de visuele bomen die deelnemen aan een lay-outsessie. U kunt deze visualisatie gebruiken om te bepalen welke logische bomen te snoeien, of om andere uitstelmethoden te evalueren om uw lay-outproces te optimaliseren. |
weergeven | Tijd besteed aan het tekenen van XAML-elementen aan het scherm. |
I/0 | Tijd die is besteed aan het ophalen van gegevens van de lokale schijf of van netwerkresources die worden geopend via de Microsoft Windows Internet (WinINet)-API-. |
app-code | Tijd die is besteed aan het uitvoeren van toepassingscode (gebruikerscode) die niet is gerelateerd aan parseren of indeling. |
Xaml Other | Tijd die is besteed aan het uitvoeren van XAML-runtimecode. |
Fooi
Kies het hulpprogramma CPU-gebruik samen met het hulpprogramma Application Timeline wanneer u profileert om app-methoden weer te geven die worden uitgevoerd op de UI-thread. Het verplaatsen van langlopende app-code naar een achtergrondthread kan de reactiesnelheid van de gebruikersinterface verbeteren.
Tijdlijndetails aanpassen
Gebruik de hulpmiddelenbalk Tijdlijndetails om de aantekeningen van de weergave-items Tijdlijndetails te sorteren, filteren en specificeren.
Naam | Beschrijving |
---|---|
sorteren op | Sorteren op begintijd of de lengte van gebeurtenissen. |
gebeurtenissen ![]() |
Hiermee voegt u een Frame categorie op het hoogste niveau toe of verwijdert die gebeurtenissen op frame groepeert. |
![]() |
Hiermee filtert u de lijst op geselecteerde categorieën en de lengte van gebeurtenissen. |
![]() |
Hiermee kunt u de aantekeningen opgeven voor gebeurtenissen. |