Dela via


Diagnostikverktyg för prestanda

Av Mike Rousos

Den här artikeln innehåller verktyg för att diagnostisera prestandaproblem i ASP.NET Core.

Information om Blazor WebAssembly prestandadiagnostikverktyg och räknare finns i ASP.NET Blazor WebAssembly Core-utvecklarverktyg för webbläsare och ASP.NET Core Blazor WebAssembly Event Pipe-diagnostik.

Diagnostikverktyg för Visual Studio

Profilerings- och diagnostikverktygen som är inbyggda i Visual Studio är ett bra ställe att börja undersöka prestandaproblem på. Dessa verktyg är kraftfulla och praktiska att använda från Visual Studio-utvecklingsmiljön. Verktygen möjliggör analys av CPU-användning, minnesanvändning och prestandahändelser i ASP.NET Core-appar. Att vara inbyggd gör det enkelt att profilera under utvecklingsfasen.

Mer information finns i Visual Studio-dokumentationen.

Application Insights

Application Insights tillhandahåller djupgående prestandadata för din app. Application Insights samlar automatiskt in data om svarshastigheter, felfrekvenser, svarstider för beroenden med mera. Application Insights stöder loggning av anpassade händelser och mått som är specifika för din app.

Azure Application Insights innehåller flera sätt att ge insikter om övervakade appar:

  • Programkarta – hjälper till att upptäcka flaskhalsar i prestanda eller fel i alla komponenter i distribuerade appar.

  • Azure Metrics Explorer är en komponent i Microsoft Azure-portalen som gör det möjligt att rita diagram, visuellt korrelera trender och undersöka toppar och dalar i måttens värden.

  • Prestandablad i Application Insights-portalen:

    • Visar prestandainformation för olika åtgärder i den övervakade appen.
    • Ger möjlighet att utforska en enskild operation för att undersöka alla delar och beroenden som bidrar till en lång varaktighet.
    • Profilerare kan anropas härifrån för att samla in prestandaspårningar på begäran.
  • Med Azure Application Insights Profiler kan du regelbundet profilera .NET-appar på begäran. Azure-portalen visar insamlade prestandaspårningar med anropsstackar och heta sökvägar. Spårningsfilerna kan också laddas ned för djupare analys med hjälp av PerfView.

Application Insights kan användas i en mängd olika miljöer:

  • Optimerad för att fungera i Azure.
  • Fungerar inom produktion, utveckling och mellanlagring.
  • Fungerar lokalt från Visual Studio eller i andra värdmiljöer.

Mer information om kodbaserad övervakning finns i Application Insights för ASP.NET Core. Mer information om kodlös övervakning finns i Övervaka Azure App Service-prestanda.

PerfView

PerfView är ett prestandaanalysverktyg som skapats av .NET-teamet specifikt för att diagnostisera .NET-prestandaproblem. PerfView möjliggör analys av CPU-användning, minne och GC-beteende, prestandahändelser och klocktid på väggen.

Mer information om PerfView finns i användarhandboken som är tillgänglig i verktyget eller på GitHub.

Windows Performance Toolkit

Windows Performance Toolkit (WPT) består av två komponenter: Windows Performance Recorder (WPR) och Windows Performance Analyzer (WPA). Verktygen skapar djupgående prestandaprofiler för Windows-operativsystem och -appar. WPT har rikare sätt att visualisera data, men datainsamlingen är mindre kraftfull än PerfViews.

PerfCollect

Även om PerfView är ett användbart prestandaanalysverktyg för .NET-scenarier körs det bara i Windows, så du kan inte använda det för att samla in spårningar från ASP.NET Core-appar som körs i Linux-miljöer.

PerfCollect är ett bash-skript som använder inbyggda Linux-profileringsverktyg (Perf och LTTng) för att samla in spårningar i Linux som kan analyseras av PerfView. PerfCollect är användbart när prestandaproblem visas i Linux-miljöer där PerfView inte kan användas direkt. I stället kan PerfCollect samla in spårningar från .NET-appar som sedan analyseras på en Windows-dator med hjälp av PerfView.

Mer information om hur du installerar och kommer igång med PerfCollect finns på GitHub.

Andra prestandaverktyg från tredje part

Nedan visas några prestandaverktyg från tredje part som är användbara vid prestandaundersökning av .NET-program.