Dela via


Körningsprofilering

Kommentar

Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.

Profilering är en metod för att samla in prestandadata i alla utvecklings- eller distributionsscenarion. Det här avsnittet är till för utvecklare och systemadministratörer som vill samla in information om programprestanda.

Spåra prestanda med hjälp av prestandaövervakaren (Perfmon.exe)

Prestandaövervakaren är det enklaste verktyget att använda för att profilera .NET Framework-programmet. Prestandaövervakaren representerar grafiskt data som finns i .NET Framework-prestandaräknare som installeras med den vanliga språkkörningen och Windows SDK. Dessa räknare kan användas för att övervaka allt från minneshantering till jit-kompilatorprestanda (just-in-time). De berättar om de resurser som programmet använder, vilket är ett indirekt mått på programmets prestanda. Använd dessa räknare för att förstå hur ditt program fungerar internt.

Så här kör du Perfmon.exe i Windows Vista och senare versioner

  1. I kommandotolken skriver du perfmon. Konsolen Prestandaövervakare visas.

  2. I mappen Övervakningsverktyg klickar du på Prestandaövervakare.

  3. I verktygsfältet Prestandaövervakare klickar du på ikonen Lägg till (plustecknet) om den finns. Om den inte finns högerklickar du i övervakningsfönstret och väljer alternativet Lägg till räknare .

    Då öppnas dialogrutan Lägg till räknare . Listrutan Tillgängliga räknare visar tillgängliga prestandaobjekt. Det finns ett antal fördefinierade objekt för .NET Framework-program, inklusive objekt för minneshantering (.NET CLR Memory), samverkan (.NET CLR Interop), undantagshantering (.NET CLR-undantag) och multitrådning (.NET CLR LocksAndThreads). Varje prestandaobjekt innehåller ett antal enskilda prestandaräknare. En lista över de prestandaräknare som är tillgängliga i Prestandaövervakaren finns i Prestandaräknare.

  4. Markera kryssrutan bredvid ett prestandaobjekts namn för att visa listan över enskilda prestandaräknare som stöds.

  5. Klicka på den prestandaräknare som du vill visa.

  6. I rutan Instanser av markerat objekt klickar du på <Alla instanser> för att ange att du vill övervaka prestandaräknaren för den vanliga språkkörningen globalt (det vill s.v.s. på systemomfattande basis).

    -eller-

    I rutan Instanser av markerat objekt klickar du på ett programnamn för att övervaka prestandaräknaren för programmet.

    Om du vill särskilja flera versioner av körningen, eller för att skilja flera program med samma namn, måste du också ändra en registernyckel. Mer information finns i Prestandaräknare och Program i processen sida vid sida.

Kommentar

När nya prestandaräknare installeras medan prestandakonsolen körs stoppar och startar du om prestandakonsolen för att göra de nya räknarna synliga.

Om du vill profilera en sammansättning som finns i en zon eller på en fjärrresurs kontrollerar du att fjärrsammansättningen har fullt förtroende på den dator som kör prestandaräknarna. Om sammansättningen inte har tillräckligt förtroende fungerar inte prestandaräknarna. Information om hur du beviljar förtroende till olika zoner finns i Caspol.exe (Code Access Security Policy Tool).

Kommentar

På system där .NET Framework 4 är installerat kanske prestandaövervakaren inte visar data för prestandaräknare i vissa kategorier, till exempel .NET CLR-data och .NET CLR-nätverk, för program som har utvecklats med hjälp av .NET Framework 1.1. Om så är fallet kan du konfigurera Prestandaövervakaren för att visa dessa data genom att lägga till elementet <forcePerformanceCounterUniqueSharedMemoryReads> i programmets konfigurationsfil.

Läsa och skapa prestandaräknare programmatiskt

.NET Framework tillhandahåller klasser som du kan använda för att programmatiskt komma åt samma prestandainformation som är tillgänglig i prestandakonsolen. Du kan också använda dessa klasser för att skapa anpassade prestandaräknare. I följande tabell beskrivs några av de prestandaövervakningsklasser som tillhandahålls i .NET Framework.

Klass beskrivning
System.Diagnostics.PerformanceCounter Representerar en Windows-prestandaräknarekomponent. Använd den här klassen för att läsa befintliga fördefinierade eller anpassade räknare och publicera (skriva) prestandadata till anpassade räknare.
System.Diagnostics.PerformanceCounterCategory Innehåller flera metoder för att interagera med räknare och kategorier av räknare på datorn.
System.Diagnostics.PerformanceCounterInstaller Anger ett installationsprogram för komponenten PerformanceCounter .
System.Diagnostics.PerformanceCounterType Anger formeln för att beräkna NextValue metoden för en PerformanceCounter.

Se även