Dela via


Vilket prestandaverktyg ska jag använda? (C#, Visual Basic, C++, F#)

Visual Studio innehåller en mängd olika profileringsverktyg som hjälper dig att diagnostisera olika typer av problem med appprestanda beroende på din apptyp. I den här artikeln ger vi information som hjälper dig att hitta rätt verktyg för ditt scenario och programtyp.

En allmän metod för att optimera kod med hjälp av profileringsverktygen finns i Fallstudie: Nybörjarguide för att optimera kod.

Vilket verktyg ska jag använda?

I följande tabell visas de olika verktyg som Visual Studio erbjuder och innehåller vanliga scenarier för att välja verktyget.

Prestandaverktyg Beskrivning När ska verktyget användas?
CPU-användning Visar var processorn spenderar tid. • Påbörja en undersökning för allmänna prestandaproblem.
• Undersök hög processoranvändning på servern.
• Undersöka DevOps-scenarier, till exempel när beställningar inte kommer fram till detaljhandelswebbplatsen.
• Optimera CPU-användningen.
• Undersöka svarstiden i API-anrop.
flame graph Visa i verktyget CPU-användning som tillhandahåller en alternativ visualisering av anropsträdet. Undersöka svarstid i API-anrop
Snabbsökväg Visa i verktyget CPU-användning som visar var merparten av cpu-tiden spenderades i ditt program. Undersöka svarstid i API-anrop
minnesanvändning Visar appens minne för att hitta problem som minnesläckor. • Optimera minnesanvändningen
• Undersöka UI-frysning
• Undersöka misstänkt minnesläcka (intern kod)
.NET-objektallokering Visar var .NET-objekt allokeras och information om skräpinsamling. • Optimera .NET-minnesanvändning
• Analysera skräpinsamling
Instrumentation Visar exakta samtalsantal och samtalstider. • Du behöver ett verktyg som CPU-användning, men du vill ha exakta antal samtal och tid i funktioner baserat på klocktid på väggen.
• Du vill se blockerad tid, till exempel tid som ägnas åt att vänta på lås.
• Obs! Det här verktyget kräver extra omkostnader.
fil-I/O- Visar dina fil-I/O-åtgärder och hur lång tid de tar och hur mycket data de bearbetar. Undersöka en frysning av användargränssnittet
PerfTips Visar ett snabbt mått på prestandainformation när du interagerar med koden. När du felsöker vill du se den förflutna tiden mellan föregående stegåtgärd (eller brytpunkt) till det aktuella steget eller brytpunkten.
Händelsevisare Visar HTTP-begäranden, loggmeddelanden och undantag. • Undersöka svarstiden i API-anrop
• Undersöka långsamma program som körs på en fjärrwebbserver
.NET Asynkron Visar async/await-användning i .NET-appar. Undersök misstänkt prestandaproblem med asynkron kod.
.NET-räknare Liverapport för .NET-räknare. • Påbörja en undersökning för allmänna prestandaproblem.
• Du vill ha en spårning för .NET-räknarbaserade mått, till exempel undantag per sekund, skräpinsamling och CPU-användning.
Databas Visar prestanda för dina databasfrågor. Undersök prestanda för databasfrågor som använder antingen ADO.NET eller Entity Framework Core.
GPU-användning Visar maskinvaruanvändning på hög nivå för din Direct3D-app. Kontrollera om appens prestanda är CPU-bunden eller GPU-bunden.
Tidslinje för ansökan Visar användargränssnittsprestanda för XAML-appar. Undersök användargränssnittsprestanda i XAML-appar, till exempel tidsåtgång för återgivningsramar.
IntelliTrace Med felsökningsverktyget kan du registrera händelser och undersöka programtillståndet vid olika exekveringspunkter. Du vill att ett verktyg ska undersöka programtillståndet vid olika tidpunkter, inte bara det aktuella programtillståndet.

Vilka verktyg stöds för mitt projekt?

I följande tabell visas de olika verktyg som Visual Studio erbjuder och de olika projekttyper som du kan använda dem med:

Prestandaverktyg .NÄT C/C++ UWP ASP.NET/ASP.NET Core
CPU-användning Ja Ja Ja Ja
minnesanvändning Ja Ja Ja Ja
.NET-objektallokering Ja Nej Ja Ja
Instrumentation Ja Ja Ja Ja
Fil-I/O Ja Ja Ja Ja
PerfTips Ja Ja Ja Ja
Händelsevisaren Ja Ja Ja Ja
.NET Async Ja Nej Ja Ja
.NET-räknare Ja (endast .NET Core/5+) Nej Nej Ja (endast ASP.NET Core)
Databas Ja (endast .NET Core/5+ ) Nej Nej Ja (endast ASP.NET Core)
GPU-användning Ja Ja Ja Nej
Tidslinje för ansökan Ja (XAML) Nej Ja Nej
Prestandautforskaren Nej Nej Nej Nej
IntelliTrace .NET med endast Visual Studio Enterprise Nej .NET med endast Visual Studio Enterprise .NET med endast Visual Studio Enterprise

Vilka verktyg stöds i Linux?

Följande verktyg stöds med Linux som målplattform samt Windows:

  • CPU-användning
  • Spårning av .NET-objektallokering
  • .NET Async
  • .NET-räknare
  • Visningsprogram för händelser
  • Databas

Lär dig hur du använder profilerare

Följande artiklar och blogginlägg innehåller mer information som hjälper dig att lära dig att använda Visual Studio-prestandaverktygen effektivt.