Nyheter med prestandaräknare
I det här avsnittet beskrivs de nya funktioner som har lagts till i prestandaräknare för varje version.
Windows 10 20H1
Om du läser prestandadata direkt från -registretkan du nu utföra en samling med endast metadata för att undvika onödigt arbete när du skapar en lista över tillgängliga prestandaobjekt och räknare. Om du använder MetadataGlobal
i stället för Global
i frågan hoppar alla metadataaktiverade provider-DLL:er över datainsamlingssteget, vilket kan förbättra frågeprestanda på system med många processer eller trådar. Provider-DLL:er som inte är metadataaktiverade fortsätter att fungera som tidigare.
Om du tillhandahåller prestandadata med hjälp av en prestanda-DLL-kan du implementera stöd för insamling av endast metadata för att undvika onödig datainsamling. Uppdatera din Collect
-funktion för att svara på MetadataGlobal
och MetadataCostly
frågor med bara metadata (använd PERF_METADATA_NO_INSTANCES
eller PERF_METADATA_MULTIPLE_INSTANCES
för NumInstances
och utelämna alla PERF_INSTANCE_DEFINITION
block från svaret) och lägg sedan till ett Collect Supports Metadata
registervärde med REG_DWORD
värdet 1 i tjänstens Performance
undernyckel.
Windows 7 och Windows Server 2008 R2
Verktyget CTRPP har ändrats för att förbättra och förenkla kodgenereringen. Verktyget genererar nu bara ett huvud och en resursfil. Om du vill använda det gamla kodgenereringsbeteendet (rekommenderas inte) kan du använda det nya argumentet -legacy
.
- Nu måste du ange de nya argumenten
-o
och-rc
som anger namnet och platsen för rubriken respektive resursfilen. - Du kan använda det valfria nya argumentet
-prefix
för att ange en sträng som ska läggas till i början av globala variabler och funktioner som definierats i den genererade huvudfilen. - Om du måste uppdatera ditt räknarmanifest genom användning av den nya kodgenereringen, eliminerar du behovet av att integrera din tidigare callback-implementering med den nya genererade koden, eftersom återanropen nu inte längre ingår i den genererade koden.
Ett nytt symbol
-attribut är tillgängligt för följande manifestelement:
Attributet symbol
krävs för provider och räknaruppsättning, och är valfritt för räknare. Med attributet kan du ange ett symboliskt namn som du kan använda för att referera till varje element när du anropar providerfunktionerna (du kan till exempel använda räknaruppsättningens symboliska namn när du anropar PerfCreateInstance).
Windows Vista
Prestandaräknarnas arkitektur för att tillhandahålla räknardata ändrades fullständigt för den här versionen.
Tidigare använde du en INI-fil för att definiera dina räknardata och du implementerade en prestanda-DLL som kördes i konsumentens process för att tillhandahålla data när en konsument begärde det. Den här arkitekturen är inaktuell och rekommenderas inte för ny kod på grund av betydande prestanda- och tillförlitlighetsproblem.
Den nya arkitekturen använder ett manifest för att definiera räknardata och kör kod i providerns process för att tillhandahålla data när en konsument begär det. För mer information, se Tillhandahållande av räknardata med version 2.0.
Följande funktioner har lagts till för den här versionen:
- ControlCallback
- PerfCreateInstance
- PerfDeleteInstance
- PerfQueryInstance
- PerfSetCounterSetInfo
- PerfSetULongCounterValue
- PerfSetULongLongCounterValue
- PerfSetCounterRefValue
- PerfStartProvider
- PerfStopProvider
Följande strukturer har lagts till för den här versionen:
En lista över XML-element som du använder i manifestet för att definiera dina räknare finns i Schema för prestandaräknare.
Information om ctrpp-förprocessorverktyget som parsar manifestet och genererar koden som du använder som startpunkt för providern finns i CTRPP-.