Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
SPTAggregatefrå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