Dela via


Självstudie: vcperf och Windows Performance Analyzer

C++ Build Insights-verktygen är tillgängliga i Visual Studio 2019 och senare. För att se dokumentationen för den här versionen, ställ in Visual Studio Version väljarkontroll för den här artikeln till Visual Studio 2019 eller senare. Den finns överst i innehållsförteckningen på den här sidan.

I den här självstudien kommer du att lära dig hur du använder vcperf.exe för att samla in en spårning av din C++-byggnad. Du får också lära dig hur du visar den här spårningen i Windows Performance Analyzer.

Steg 1: Installera och konfigurera Windows Performance Analyzer

WPA är ett spårningsvisare som är tillgängligt i Windows Assessment and Deployment Kit (ADK). Det är ett separat verktyg som inte ingår i de komponenter som du kan installera med Installationsprogrammet för Visual Studio.

En version av WPA som stöder C++ Build Insights är endast tillgänglig i versioner av Windows ADK numrerad 10.1.19041.0 eller senare.

Så här laddar du ned och installerar WPA

Obs! Windows 8 eller senare krävs för att installera Windows Performance Analyzer.

  1. Bläddra till nedladdningssidan för Windows ADK.

  2. Ladda ned och installera den senaste versionen av Windows ADK.

  3. När du uppmanas att ange de funktioner som du vill installera väljer du Windows Performance Toolkit. Du kan välja andra funktioner om du vill, men de krävs inte för att installera WPA.

    Windows Performance Analyzer-installationsprogrammets funktionsvalsskärm.

Så här konfigurerar du WPA

Att visa C++ Build Insights-spårningar i WPA kräver ett särskilt tillägg. Följ de här stegen för att installera det:

  1. Hämta tillägget genom att ladda ned en av komponenterna nedan. Du behöver inte få båda. Välj den som passar bäst.

  2. perf_msvcbuildinsights.dll Kopiera filen till wpa-installationskatalogen.

    1. I Visual Studio 2019 version 16.6 och senare finns den här filen här: C:\Program Files (x86)\Microsoft Visual Studio\{Year}\{Edition}\VC\Tools\MSVC\{Version}\bin\Host{Architecture}\{Architecture}.
    2. I NuGet-paketet C++ Build Insights finns den här filen här: wpa\{Architecture}.
    3. I sökvägarna ovan ersätter du variablerna omgivna av klammerparenteser enligt följande:
      1. {Year} är ditt Visual Studio-produktår, till exempel 2019 eller 2022.
      2. {Edition} är din Visual Studio-utgåva, till exempel Community, Professional eller Enterprise.
      3. {Version} är din MSVC-version. Välj den högsta tillgängliga.
      4. {Architecture}: välj x64 om du har en 64-bitarsversion av Windows. Annars väljer du x86.
    4. WPA-installationskatalogen är vanligtvis: C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit.
  3. I din WPA-installationskatalog, öppna filen perfcore.ini och lägg till en post för perf_msvcbuildinsights.dll.

Steg 2: Spåra din version med vcperf.exe

Om du vill visa C++ Build Insights-data samlar du först in dem i en spårningsfil genom att följa dessa steg:

  1. Öppna en x64 - eller x86 Native Tools-kommandotolk för VS i administratörsläge. (Högerklicka på menyalternativet Start och välj Mer>Kör som administratör.)

    1. Välj x64 om du har en 64-bitarsversion av Windows. Annars väljer du x86.
  2. I kommandotolken anger du följande kommando:

    vcperf.exe /start SessionName

    Välj ett sessionsnamn som du kommer ihåg för SessionName.

  3. Skapa projektet som vanligt. Du behöver inte använda samma kommandotolkfönster för att skapa.

  4. I kommandotolken anger du följande kommando:

    vcperf.exe /stop SessionNametraceFile.etl

    Använd samma sessionsnamn som du valde för SessionName tidigare. Välj ett lämpligt namn för spårningsfilen traceFile.etl .

Så här ser en typisk vcperf.exe kommandosekvens ut i kommandotolken för utvecklare:

Skärmbild av ett kommandofönster som visar vcperf.exe kommandon och resultat.

Viktig information om vcperf.exe

  • Administratörsbehörighet krävs för att starta eller stoppa en vcperf.exe spårning. Använd ett kommandotolksfönster för utvecklare som du öppnar med hjälp av Kör som administratör.

  • Endast en spårningssession i taget kan köras på en dator.

  • Kom ihåg sessionsnamnet som du använde för att starta spårningen. Det kan vara svårt att stoppa en session som körs utan att känna till namnet.

  • Precis som cl.exe och link.exeingår kommandoradsverktyget vcperf.exe i en MSVC-installation. Inga ytterligare steg krävs för att hämta den här komponenten.

  • vcperf.exe samlar in information om alla MSVC-verktyg som körs i systemet. Därför behöver du inte starta bygget från samma kommandotolk som du använde för att samla in spårningen. Du kan skapa projektet från en annan kommandotolk eller till och med i Visual Studio.

vcperf.exe är öppen källkod

Om du vill skapa och köra din egen version av vcperf.exekan du klona den från GitHub-lagringsplatsen vcperf.

Steg 3: Visa spårningen i Windows Performance Analyzer

Starta WPA och öppna spårningen som du precis har samlat in. WPA bör känna igen den som en C++ Build Insights-spårning och följande vyer bör visas i panelen Graph Explorer till vänster:

  • Build Explorer
  • Filer
  • Funktionen
  • Mall-instansieringar

Om du inte kan se dessa vyer kontrollerar du att WPA är korrekt konfigurerat enligt beskrivningen i steg 1. Du kan visa dina byggdata genom att dra vyerna till det tomma analysfönstret till höger, som du ser här:

Vy över en spårning av C++ Build Insights i Windows Performance Analyzer.

Andra vyer är tillgängliga på panelen Graph Explorer. Dra dem till fönstret Analys när du är intresserad av den information de innehåller. En användbar vy är vyn CPU (prov), som visar CPU-användning under hela kompileringen.

Mer information

Självstudie: Grunderna i Windows Performance Analyzer
Lär dig mer om vanliga WPA-operationer som kan hjälpa dig att analysera dina byggspår.

Referens: vcperf-kommandon
Kommandoreferensenvcperf.exe visar alla tillgängliga kommandoalternativ.

Referens: Windows Performance Analyzer-översikter
Mer information om C++ Build Insights-vyerna i WPA finns i den här artikeln.

Prestandaanalys för Windows
Den officiella WPA-dokumentationswebbplatsen.