Bekijk eerst de profileringshulpprogramma's (C#, Visual Basic, C++, F#)
Hulpprogramma's voor het meten van toepassingsprestaties zijn essentieel voor ontwikkelaars die hun code willen optimaliseren en de prestaties van toepassingen willen verbeteren. Visual Studio biedt verschillende hulpprogramma's voor profilering en diagnostische gegevens waarmee u geheugen- en CPU-gebruik en andere problemen op toepassingsniveau kunt diagnosticeren. Met deze hulpprogramma's kunt u prestatiegegevens verzamelen terwijl u uw toepassing uitvoert. Met een profiler kunt u snel weloverwogen beslissingen nemen door een visuele weergave van uitvoeringstijden en CPU-gebruik voor uw toepassing te bieden. In dit artikel bekijken we de meest voorkomende profileringshulpprogramma's.
Zie Welk hulpprogramma moet ik gebruiken voor hulp bij het kiezen van het juiste hulpprogramma of om de ondersteuning van profileringsprogramma's voor verschillende app-typen te bekijken? Zie Casestudy: Handleiding voor het optimaliseren van codevoor beginners voor een zelfstudie waarin een algemene benadering wordt getoond voor het optimaliseren van code met behulp van de profileringshulpprogramma's.
Voor de beste ervaring met deze documentatie kiest u de gewenste ontwikkeltaal of runtime in de lijst bovenaan het artikel.
Prestaties meten in release-builds
Hulpprogramma's in de Performance Profiler zijn bedoeld om analyses te bieden voor release builds. In de Performance Profiler kunt u diagnostische gegevens verzamelen terwijl de app wordt uitgevoerd en vervolgens de verzamelde gegevens onderzoeken nadat de app is gestopt (een post-mortem-analyse).
Open de Performance Profiler door de optie Debuggen>Performance Profiler (of Alt + F2) te kiezen.
Zie voor meer informatie over het gebruik van het hulpprogramma CPU-gebruik of geheugengebruik in de Performance Profiler versus de hulpprogramma's die geïntegreerd zijn in de debugger, Hulpprogramma's voor profilering uitvoeren op release- of foutopsporingsversies.
Beschikbare tools in de Performance Profiler zijn:
In sommige scenario's kunt u in het venster meerdere profileringshulpprogramma'sselecteren. Hulpprogramma's zoals CPU-gebruik bieden mogelijk aanvullende gegevens die u kunt gebruiken om u te helpen bij uw analyse. U kunt ook de opdrachtregel profiler gebruiken om scenario's met meerdere profileringshulpprogramma's in te schakelen.
Prestaties meten tijdens foutopsporing
De profileringsprogramma's die u tijdens een foutopsporingssessie kunt openen, zijn beschikbaar in het venster Diagnostische hulpprogramma's. Het venster Diagnostische hulpprogramma's wordt automatisch weergegeven, tenzij u het hebt uitgeschakeld. Als u het venster wilt openen, klikt u op Foutopsporing/Windows/Diagnostische hulpprogramma's weergeven (of drukt u op Ctrl + Alt + F2). Wanneer het venster is geopend, kunt u hulpprogramma's selecteren waarvoor u gegevens wilt verzamelen.
Terwijl u foutopsporing gebruikt, kunt u het venster Diagnostische hulpprogramma's gebruiken om CPU, geheugengebruik, .NET-tellers te analyseren en kunt u gebeurtenissen weergeven die prestatiegerelateerde informatie weergeven.
Terwijl u fouten opspoort, kunt u het diagnostische hulpprogramma's venster gebruiken om CPU- en geheugengebruik te analyseren en kunt u gebeurtenissen weergeven die prestatiegerelateerde informatie weergeven.
Overzichtsweergave
Overzichtsweergave
Het Diagnostische Hulpprogramma's-venster is een veelgebruikte manier om apps te profilen, maar voor release-builds kunt u ook een post-mortem-analyse van uw app uitvoeren. Zie voor meer informatie over verschillende benaderingen Gebruik hulpprogramma's voor profilering op release- of foutopsporingsversies. Zie Welk hulpprogramma moet ik gebruiken om de ondersteuning voor profileringsprogramma's voor verschillende typen apps te zien?.
Hulpprogramma's die beschikbaar zijn in het venster Diagnostische hulpprogramma's of tijdens een foutopsporingssessie zijn onder andere:
Tip
Gebruik opnieuw starten om de startpagina over te slaan en automatisch uit te voeren met uw vorige instellingen door op Alt+F2- te drukken of door te klikken op Foutopsporing > Performance Profiler-.
Notitie
Windows 8 en hoger is vereist voor het uitvoeren van profileringsprogramma's met het foutopsporingsprogramma (Diagnostische hulpprogramma's venster).
CPU-gebruik analyseren
Het hulpprogramma CPU-gebruik is een goede plek om te beginnen met het analyseren van de prestaties van uw app. U krijgt meer informatie over CPU-resources die door uw app worden gebruikt. U kunt het debugger-geïntegreerde hulpprogramma voor cpu-gebruik of het post-mortem hulpprogramma voor cpu-gebruikgebruiken.
Wanneer u de in de debugger geïntegreerde CPU-gebruikstool gebruikt, opent u het venster Diagnostics Tool (als dit is gesloten, kiest u Foutopsporing/Windows/Diagnostische hulpprogramma's weergeven). Tijdens het foutopsporen opent u de weergave Samenvatting en selecteert u CPU-profiel vastleggen.
Een manier om het hulpprogramma te gebruiken, is het instellen van twee onderbrekingspunten in uw code, één aan het begin en een aan het einde van de functie of het codegebied dat u wilt analyseren. Bekijk de profielgegevens wanneer u bij het tweede breekpunt pauzeert.
In de weergave CPU-gebruik ziet u een lijst met functies die zijn gerangschikt op basis van de langste uitvoeringstijd, waarbij de langstlopende functie bovenaan staat onder Topfuncties. In de sectie Hete Pad ziet u de aanroepstack voor de functies die de meeste CPU-kracht gebruiken. Deze lijsten kunnen u helpen bij functies waar prestatieknelpunten optreden.
In de weergave CPU-gebruik ziet u een lijst met functies die gesorteerd zijn op looptijd, met de langstlopende functie bovenaan. Dit kan u helpen bij functies waar prestatieknelpunten optreden.
Klik op een functie waarin u geïnteresseerd bent en u ziet een gedetailleerdere aanroepstructuur weergave, met de geselecteerde functie gemarkeerd. De tabel toont kolommen met gegevens zoals de tijd die in de functie is besteed, inclusief aangeroepen functies (Totale CPU), en een tweede kolom die de tijd toont die aan een functie is besteed, met uitzondering van aangeroepen functies (Self CPU). Met deze gegevens kunt u evalueren of de functie zelf een knelpunt voor prestaties is.
Tip
Visual Studio Profiler ondersteunt zowel het verzamelen als weergeven van traceringen. De profiler kan ook traceringen bekijken die eerder zijn verzameld door andere hulpprogramma's, zoals dotnet-trace. Dotnet-trace produceert steekproeven, geen geïnstrumenteerde trace. Zie dotnet-tracevoor meer informatie.
Klik op een functie waarin u geïnteresseerd bent en u ziet een gedetailleerdere drie-vensterweergave 'butterfly', met de geselecteerde functie in het midden van het venster, de aanroepende functie aan de linkerkant, en de aangeroepen functies aan de rechterkant. In de sectie Functietekst ziet u de totale hoeveelheid tijd (en het percentage tijd) dat in de hoofdtekst van de functie is besteed, met uitzondering van de tijd die is besteed aan het aanroepen en aanroepen van functies. Met deze gegevens kunt u evalueren of de functie zelf een knelpunt voor prestaties is.
Geheugengebruik analyseren
In het venster Diagnostische hulpprogramma's kunt u ook het geheugengebruik in uw app evalueren met behulp van het hulpprogramma Geheugengebruik. U kunt bijvoorbeeld het aantal en de grootte van objecten op de heap bekijken. U kunt het -foutopsporingsprogramma-geïntegreerde geheugengebruikshulpmiddel of het -na-incident-hulpprogramma voor geheugengebruik in de Performance Profiler gebruiken.
.NET-ontwikkelaars kunnen kiezen tussen het hulpprogramma .NET-objecttoewijzing of het hulpprogramma geheugengebruik.
- Met het hulpprogramma .NET-objecttoewijzing kunt u toewijzingspatronen en afwijkingen in uw .NET-code identificeren en veelvoorkomende problemen met garbagecollection identificeren. Dit hulpprogramma wordt alleen als een post-mortemhulpmiddel uitgevoerd. U kunt dit hulpprogramma uitvoeren op lokale of externe computers.
- Het hulpprogramma Geheugengebruik is handig bij het identificeren van geheugenlekken, die doorgaans niet gebruikelijk zijn in .NET-apps. Als u functies voor de debugger moet gebruiken tijdens het controleren van het geheugen, zoals het doorstappen van code, wordt het debugger-geïntegreerde hulpprogramma voor geheugengebruik aanbevolen.
Als u het geheugengebruik wilt analyseren met het hulpprogramma Geheugengebruik, moet u ten minste één momentopname van het geheugen maken. Vaak kunt u het beste geheugen analyseren door twee momentopnamen te maken; het eerste recht vóór een verdacht geheugenprobleem en de tweede momentopname direct nadat er een verdacht geheugenprobleem is opgetreden. Vervolgens kunt u een diff van de twee momentopnamen bekijken en precies zien wat er is gewijzigd. In de volgende afbeelding ziet u hoe u een momentopname maakt met het in de debugger geïntegreerde hulpprogramma.
Wanneer u een van de pijlpictogrammen selecteert, krijgt u een differentiële weergave van de heap (een rode pijl omhoog toont een toenemend aantal objecten (links) of een toenemende heapgrootte (rechts)). Als u op de juiste link klikt, krijgt u een differentiële heapweergave geordend op objecten die het meest in heapgrootte zijn toegenomen. Dit kan u helpen bij het vaststellen van geheugenproblemen. In de onderstaande afbeelding zijn bijvoorbeeld de bytes die door ClassHandlersStore
objecten worden gebruikt, verhoogd met 3492 bytes in de tweede momentopname.
Als u in plaats daarvan op de koppeling aan de linkerkant klikt in de weergave geheugengebruik, wordt de heap-weergave ingedeeld op objectaantal; de objecten van een bepaald type die het meeste aantal hebben verhoogd, worden bovenaan weergegeven (gesorteerd op aantal diff kolom).
Instrumentatie
Het hulpprogramma Instrumentatie is vergelijkbaar met het hulpprogramma CPU-gebruik, behalve dat het exacte aantal aanroepen en wandkloktijd biedt in plaats van CPU-gebruik. De instrumentatiemethode vereist meer overhead dan de CPU-gebruik tool. Dit hulpprogramma is beschikbaar in performance profiler. Open de Prestatieprofiel door Foutopsporing>Prestatieprofiel (of Alt + F2) te kiezen. Zie Instrumentatievoor meer informatie.
Het bestands-I/O onderzoeken
Het hulpprogramma Bestands-I/O helpt u te begrijpen hoe u uw bestands-I/O-bewerkingen kunt optimaliseren om de prestaties in uw apps te verbeteren. Als u trage laadtijden probeert te onderzoeken en diagnosticeren, kan het nieuwe hulpprogramma File IO u helpen te begrijpen hoe de I/O-bewerkingen van invloed zijn op uw besteede tijd. Dit hulpprogramma is beschikbaar in performance profiler. Open de Performance Profiler door Fouten opsporen > Performance Profiler (of Alt + F2) te kiezen.
Het hulpprogramma toont lees- en schrijfbewerkingen voor bestanden in een lijstweergave met tabbladen.
Prestaties onderzoeken met behulp van PerfTips
Vaak is de eenvoudigste manier om prestatiegegevens weer te geven het gebruik van PerfTips. Met Behulp van PerfTips kunt u prestatiegegevens bekijken tijdens interactie met uw code. U kunt informatie controleren, zoals de duur van de gebeurtenis (gemeten vanaf het moment dat het foutopsporingsprogramma voor het laatst is onderbroken of wanneer de app is gestart). Als u bijvoorbeeld de code (F10, F11) doorloopt, ziet u met PerfTips de runtimeduur van de app van de vorige stapbewerking naar de huidige stap.
U kunt PerfTips gebruiken om te onderzoeken hoe lang het duurt voordat een codeblok wordt uitgevoerd of hoe lang het duurt voordat één functie is voltooid.
PerfTips geven dezelfde gebeurtenissen weer die ook worden weergegeven in de gebeurtenissen weergave van diagnostische hulpprogramma's. In de gebeurtenissen weergave kunt u verschillende gebeurtenissen bekijken die optreden tijdens het opsporen van fouten, zoals de instelling van een onderbrekingspunt of een codestapbewerking.
Notitie
Als u Visual Studio Enterprise hebt, kunt u ook IntelliTrace-gebeurtenissen zien op dit tabblad.
Asynchrone code (.NET) analyseren
Met het hulpprogramma .NET Async kunt u de prestaties van asynchrone code in uw toepassing analyseren. Dit hulpprogramma is beschikbaar in performance profiler. Open de Performance Profiler door Debuggen>Performance Profiler te kiezen (of gebruik Alt + F2).
In het hulpprogramma wordt elke asynchrone bewerking in een lijstweergave weergegeven. U kunt informatie zien zoals de begintijd, eindtijd en totale tijd voor een asynchrone bewerking.
Dit hulpprogramma wordt ondersteund voor .NET Core- en .NET 5+-apps.
Asynchrone code (.NET) analyseren
Met het hulpprogramma .NET Async kunt u de prestaties van asynchrone code in uw toepassing analyseren. Dit hulpprogramma is beschikbaar in performance profiler. Open de Performance Profiler door Debug>Performance Profiler (of Alt + F2) te kiezen.
In het hulpprogramma wordt elke asynchrone bewerking in een lijstweergave weergegeven. U kunt informatie zien zoals de begintijd, eindtijd en totale tijd voor een asynchrone bewerking.
Dit hulpprogramma wordt ondersteund voor .NET Core- en .NET 5+-apps.
Databaseprestaties analyseren (.NET)
Voor .NET Core- en .NET 5+-apps die gebruikmaken van ADO.NET of Entity Framework Core, kunt u met het hulpprogramma Database de databasequery's vastleggen die door uw toepassing worden uitgevoerd tijdens een diagnostische sessie. Vervolgens kunt u informatie over afzonderlijke query's analyseren om locaties te vinden waar de prestaties van uw app kunnen worden verbeterd. Dit hulpprogramma is beschikbaar in performance profiler. Open de Performance Profiler door Debuggen>Performance Profiler (of Alt + F2) te kiezen.
In het hulpprogramma wordt elke query in een lijstweergave weergegeven. U kunt informatie zien, zoals de begintijd en duur van de query.
.NET-tellers visualiseren (.NET)
Vanaf Visual Studio 2019 versie 16.7 kunt u het hulpprogramma .NET Counters in Visual Studio gebruiken om prestatiemeteritems te visualiseren. U kunt tellers visualiseren die zijn gemaakt met dotnet-counters. dotnet counters ondersteunen veel tellers, zoals CPU-gebruik en garbagecollector heapgrootte.
Het hulpprogramma toont livewaarden voor elke teller in een lijstweergave.
Dit hulpprogramma wordt ondersteund voor .NET Core- en .NET 5+-apps.
Applicatie-evenementen onderzoeken
Met de algemene gebeurtenissenviewer kunt u de activiteit van uw toepassing bekijken via een lijst met gebeurtenissen, zoals het laden van modules, het starten van threads en systeemconfiguraties, om beter te bepalen hoe uw toepassing presteert binnen de Visual Studio-profiler. Dit hulpprogramma is beschikbaar in performance profiler. Open de Performance Profiler door te kiezen voor Debuggen>Performance Profiler (of Alt + F2).
Het hulpprogramma toont elke gebeurtenis in een lijstweergave. Kolommen bevatten informatie over elke gebeurtenis, zoals de gebeurtenisnaam, tijdstempel en proces-id.
Aangepaste gebeurtenissen weergeven in de tijdlijngrafieken
U kunt programmatisch aangepaste gebeurtenissen maken die worden weergegeven als pictogrammen in de tijdlijngrafieken, zoals het CPU-gebruik en tijdlijngrafieken voor geheugengebruik. Zie Gebruikersmarkeringen toevoegen aan tijdlijnvoor meer informatie.
Resourceverbruik analyseren (XAML)
In XAML-apps, zoals WPF-apps voor Windows-bureaublad en UWP-apps, kunt u het resourceverbruik analyseren met behulp van het hulpprogramma Application Timeline. U kunt bijvoorbeeld 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 het opstarten van toepassingen, het laden van pagina's en het wijzigen van het formaat van vensters. Als u het hulpprogramma wilt gebruiken, kiest u Application Timeline in de Performance Profiler en kiest u vervolgens Start. Open uw app en doorloop het scenario met een mogelijk probleem met het verbruik van bronnen, en kies vervolgens Verzameling stoppen om het rapport te genereren.
Lage framerates in de visualdoorvoer grafiek kunnen overeenkomen met visuele problemen die u ziet bij het uitvoeren van uw app. Op dezelfde manier kunnen hoge getallen in het ui-threadgebruik grafiek ook overeenkomen met problemen met de reactietijd van de gebruikersinterface. In het rapport kunt u een periode selecteren met een verdacht prestatieprobleem en vervolgens de gedetailleerde activiteiten van de gebruikersinterfacethread bekijken in de weergave Tijdlijndetails (lager deelvenster).
In de weergave Tijdlijndetails vindt u informatie zoals het type activiteit (of het betrokken UI-element) samen met de duur van de activiteit. In de afbeelding duurt het bijvoorbeeld 57,53 ms voor een lay-out gebeurtenis voor een rasterbesturing.
Zie Application Timelinevoor meer informatie.
Prestatie- en toegankelijkheidsevenementen van de gebruikersinterface onderzoeken (UWP)
In uw UWP-apps kunt u UI Analysis inschakelen in het venster Diagnostische hulpprogramma's. Het hulpprogramma zoekt naar veelvoorkomende prestatie- of toegankelijkheidsproblemen en geeft deze weer in de gebeurtenissen weergave terwijl u fouten opspoort. De gebeurtenisbeschrijvingen bevatten informatie waarmee u problemen kunt oplossen.
GPU-gebruik analyseren (Direct3D)
In Direct3D-apps (Direct3D-onderdelen moeten zich in C++) kunnen activiteiten op de GPU worden onderzocht en prestatieproblemen worden geanalyseerd. Zie GPU-gebruikvoor meer informatie. Als u het hulpprogramma wilt gebruiken, kiest u GPU-gebruik in de Performance Profiler en kiest u vervolgens Start. Ga in uw app door het scenario voor profielanalyse waarin u geïnteresseerd bent en kies vervolgens Stop verzameling om een rapport te genereren.
Wanneer u een periode in de grafieken selecteert en weergavedetailskiest, verschijnt er een gedetailleerde weergave in het onderste deelvenster. In de gedetailleerde weergave kunt u onderzoeken hoeveel activiteit er gebeurt op elke CPU en GPU. Selecteer gebeurtenissen in het laagste deelvenster om pop-ups op te halen in de tijdlijn. Selecteer bijvoorbeeld de gebeurtenis Present om oproeppop-ups voor Present weer te geven. (De lichtgrijze verticale VSync-lijnen kunnen worden gebruikt als referentie om te begrijpen of bepaalde Present calls de VSync hebben gemist. Er moet één Present call zijn tussen elke twee VSyncs, zodat de app stabiel 60 FPS haalt.)
U kunt de grafieken ook gebruiken om te bepalen of er cpu-gebonden of GPU-gebonden prestatieknelpunten zijn.
Prestaties analyseren (verouderde hulpprogramma's)
In Visual Studio 2019 zijn de verouderde Performance Explorer en gerelateerde profileringsprogramma's zoals de Performance Wizard geïntegreerd in de Performance Profiler, die u kunt openen via Foutopsporing>Performance Profiler. In de Performance Profiler zijn de beschikbare diagnostische hulpprogramma's afhankelijk van het gekozen doel en het huidige, geopende opstartproject. Het hulpprogramma CPU-gebruik biedt de functie voor steekproeven die eerder in de wizard Prestaties werd ondersteund. Het hulpprogramma Instrumentatie biedt de mogelijkheden voor instrumentatieprofilering (voor nauwkeurige aanroepaantallen en duren) die in de wizard Prestaties werden aangetroffen. Extra geheugenhulpprogramma's worden ook weergegeven in de Performance Profiler.