SPDConvert

Använd SPDConvert för att förbereda och hantera exempelprofildata för SPGO (Sample Profile-Guided Optimization).

Det här verktyget korrelerar de råa maskinvaruexemplen i SPT-filer mot kodstrukturen i SPD. Det här steget utför korrelation av sampel, flödesutjämning samt beslut om storlek och hastighet, och genererar en utökad SPD-fil med exekveringsantal annoterade i flödesgrafen.

Du kan kombinera data från flera källor, till exempel labbmått, intern övervakning och produktionstelemetri, i en enda konvertering. Om du vill betona vikten av ett visst scenario kan du ange dess SPT-fil flera gånger. Att lista det kritiska riktmärket SPT tre gånger innebär i praktiken att dess vikt tredubblas.

Det här verktyget fungerar i tre lägen:

  • importera .SPT-data i en .SPD-fil för /SPGO-byggen
  • extrahera en inbäddad . SPD-fil från en . PDB
  • sammanfoga flera . SPD-filer från separata profileringskörningar

SPDConvert fungerar med tre filtyper:

  • ETL (Händelsespårningslogg) Råa maskinvaruprestandahändelser som registrerats av xperf
  • SPT (Exempelprofilspårning) Paketerade exempelhändelser som skapats av SPTAggregate från ETL-filer
  • SPD (Exempelprofildatabas) Bearbetade profildata som används av kompilatorn under en optimerad version. Du kan också bädda in SPD-filer i PDB-symbolfiler under en /spdembed-build

Syntax

Importera SPT-data till en befintlig SPD-fil:

SPDConvert [alternativ] spdfilesptfile(s)

Extrahera en inbäddad SPD-fil från en PDB:

SPDConvert /extractpdbfilespdfile

Sammanfoga flera SPD-filer till en:

SPDConvert /mergeoutputspdfilespdfile(s)

Parameters

IMPORTLÄGE

alternativ
Ange följande alternativ i importläge:

  • /Läge:<IP|LBR> Välj profilläge. Använd IP för profildata för instruktionspekaren (standard) eller LBR för profildata för senaste grenregistrering.
  • /Återställa: Återställ antalet till 0. Den här åtgärden ignorerar SPT:er. Använd det här alternativet om du vill återställa en SPD-fil innan du importerar nya data, eller för att skapa en tom SPD-fil om den angivna filen inte finns.
  • /sptlist:<Filen> Ange SPT-filnamn i en textfil med ett filnamn per rad.
  • /Sammanfattning Skriv ut en sammanfattning av SPD-filen.
  • /Hjälp Visa hjälpinformation.

spdfile
SPD-filen som du vill importera exempeldata till.

sptfiles
En eller flera SPT-filer som ska importeras. SPT-filer produceras av SPTAggregate.

EXTRAHERINGSLÄGE (/extract)

pdbfile
PDB-filen som innehåller en inbäddad SPD.

spdfile
SPD-utdatafilen som ska skapas.

SAMMANSLAGNINGSLÄGE (/sammanslagning)

outputspdfile
SPD-utdatafilen som ska skapas.

/retire:<N> Ställ in utrangeringstakten för profildata till N/16, där 0 ≤ N ≤ 16. Standardvärdet är 8. Det här värdet styr hur mycket av befintliga data i ett SPD som ska tas bort när du lägger till nya SPT-data. Tar till exempel /retire:8 bort 8/16 (hälften) av befintliga data innan du lägger till nya SPT-data. Den här inställningen viktar nyare profildata tyngre eftersom hälften av de äldre data tas bort. De två vanligaste användningsområdena är /retire:0, vilket ger lika stor vikt åt alla profilkörningar, eller /retire:16 för att bara de senaste data räknas, eftersom all gammal data tas bort. Använd /retire:N för att styra hur aggressivt SPDConvert tonar ned äldre profildata. Med det här konceptet "carry forward" kan du uppdatera en profil med befintliga SPD-data utan att börja om med nya profileringsdata, vilket är tidskrävande. Det här konceptet beskrivs mer i SPGO-självstudien – Återanvända SPD-information i olika versioner.

spdfiles
En eller flera SPD-filer som ska sammanfogas.

Anmärkningar

Note

Kör det här verktyget från en kommandotolk för Visual Studio utvecklare.

SPDConvert är huvudkonverteringsverktyget i SPGO-arbetsflödet. När du har samlat in en spårning med hjälp av xperf och konverterat den till en SPT-fil med hjälp av SPTAggregate använder du sedan SPDConvert för att importera exempeldata till en SPD-fil. Skicka den resulterande SPD-filen till kompilatorn med hjälp /SPGO av flaggan för att skapa en optimerad binär fil.

Använd /extract för att återställa en SPD-fil som var inbäddad i en PDB under en /SPGO version. Använd /merge för att kombinera SPD-filer från flera profileringssessioner innan du återskapar.

GUID och ålder för en binär fil måste matcha mellan SPT- och SPD-filerna. Om de inte stämmer överens, rapporterar SPDConvert felet "SPD-versionen är inkompatibel". Använd SPTDump /progid för att kontrollera de binära identifierarna i SPT-filen och SPDDump /header för att kontrollera SPD-filen.

GUID:en och åldersvärdet för den binärfil som registrerats i SPD-filen måste stämma överens med uppgifterna i SPT-filen. Om du vill diagnostisera det här felet använder du SPTDump /progid för att inspektera de binära identifierarna i SPT-filen och SPDDump /header för att inspektera SPD-filen. En giltig SPD-fil används i så stor utsträckning som möjligt. Mindre uppdateringar av koden som inte ändrar programmets kontrollflöde tolereras. Oförändrade funktioner använder också data för optimering. Om du anger ett giltigt, men i övrigt orelaterat SPD, fungerar processen, men sannolikt kan inga data användas för optimering.

Example

I det här exemplet importeras LBR-profildata från en SPT-fil till en SPD-fil:

SPDConvert /mode:LBR sample.spd sample.spt

I det här exemplet importeras IP-profildata med hjälp av en lista med SPT-filer:

SPDConvert /mode:IP /sptlist:mysptfiles.txt sample.spd

Det här exemplet skriver ut en sammanfattning av profildata i en SPD-fil:

SPDConvert /summary sample.spd

I det här exemplet extraheras den inbäddade SPD:en från en PDB-fil:

SPDConvert /extract sample.pdb sample_extracted.spd

Det här exemplet sammanfogar två SPD-filer från olika profileringskörningar:

SPDConvert /merge combined.spd run1.spd run2.spd

Se även

Självstudie: Använda SPGO (Sample Profile-Guided Optimization) för att förbättra prestanda
SPDDump
SPTAggregate
SPTDump