Neuerungen bei Leistungsindikatoren
In diesem Abschnitt werden die neuen Features beschrieben, die den Leistungsindikatoren für jedes Release hinzugefügt wurden.
Windows 10 20H1
Wenn Sie Leistungsdaten direkt aus der Registrierung lesen, können Sie jetzt eine reine Metadatensammlung durchführen, um unnötigen Aufwand beim Erstellen einer Liste der verfügbaren Leistungsobjekte und Leistungsindikatoren zu vermeiden. Wenn Sie anstelle von Global
in Ihrer Abfrage verwendenMetadataGlobal
, überspringen alle metadatenfähigen Anbieter-DLLs den Datensammlungsschritt, wodurch die Abfrageleistung auf Systemen mit vielen Prozessen oder Threads möglicherweise verbessert wird. Anbieter-DLLs, die nicht metadatenfähig sind, funktionieren weiterhin wie zuvor.
Wenn Sie Leistungsdaten mithilfe einer Leistungs-DLL bereitstellen, können Sie unterstützung für die reine Metadatensammlung implementieren, um unnötige Datensammlungen zu vermeiden. Aktualisieren Sie Ihre Collect
Funktion, um nur mit den Metadaten auf und MetadataCostly
Abfragen zu MetadataGlobal
reagieren (verwenden Sie PERF_METADATA_NO_INSTANCES
oder PERF_METADATA_MULTIPLE_INSTANCES
für NumInstances
und lassen Sie alle PERF_INSTANCE_DEFINITION
Blöcke aus der Antwort aus), und fügen Sie dann einen Collect Supports Metadata
Registrierungswert mit REG_DWORD
dem Wert 1 zum Unterschlüssel Ihres Diensts Performance
hinzu.
Windows 7 und Windows Server 2008 R2
Das CTRPP-Tool wurde geändert, um die Codegenerierung zu verbessern und zu vereinfachen. Das Tool generiert jetzt nur einen Header und eine Ressourcendatei. Wenn Sie ein altes Codegenerierungsverhalten verwenden möchten (nicht empfohlen), können Sie das neue -legacy
Argument verwenden.
- Sie müssen nun die neuen
-o
Argumente und-rc
angeben, die den Namen und den Speicherort der Header- bzw. Ressourcendatei angeben. - Sie können das optionale neue
-prefix
Argument verwenden, um eine Zeichenfolge anzugeben, die am Anfang der in der generierten Headerdatei definierten globalen Variablen und Funktionen hinzugefügt werden soll. - Wenn Sie Ihr Indikatorenmanifest aktualisieren müssen, entfällt die Verwendung der neuen Codegenerierung die Notwendigkeit, Ihre vorherige Rückrufimplementierung mit dem neu generierten Code zusammenzuführen, da die Rückrufe nicht mehr im generierten Code enthalten sind.
Ein neues symbol
Attribut ist für die folgenden Manifestelemente verfügbar:
Das symbol
Attribut ist für provider und counterSet erforderlich und für counterSet optional. Mit dem -Attribut können Sie einen symbolischen Namen angeben, mit dem Sie beim Aufrufen der Anbieterfunktionen auf jedes Element verweisen können (z. B. können Sie den symbolischen Namen des Indikatorsatzes beim Aufrufen von PerfCreateInstance verwenden).
Windows Vista
Die Architektur der Leistungsindikatoren zum Bereitstellen von Zählerdaten wurde für dieses Release vollständig geändert.
Zuvor haben Sie eine INI-Datei verwendet, um Ihre Leistungsindikatordaten zu definieren, und Sie haben eine Leistungs-DLL implementiert, die im Prozess des Consumers ausgeführt wurde, um die Daten bereitzustellen, wenn ein Consumer sie angefordert hat. Diese Architektur ist veraltet und wird aufgrund erheblicher Leistungs- und Zuverlässigkeitsprobleme nicht für neuen Code empfohlen.
Die neue Architektur verwendet ein Manifest, um die Zählerdaten zu definieren, und führt Code im Prozess des Anbieters aus, um die Daten bereitzustellen, wenn ein Consumer sie anfordert. Weitere Informationen finden Sie unter Bereitstellen von Leistungsindikatordaten mit Version 2.0.
Die folgenden Funktionen wurden für dieses Release hinzugefügt:
- ControlCallback
- PerfCreateInstance
- PerfDeleteInstance
- PerfQueryInstance
- PerfSetCounterSetInfo
- PerfSetULongCounterValue
- PerfSetULongLongCounterValue
- PerfSetCounterRefValue
- PerfStartProvider
- PerfStopProvider
Die folgenden Strukturen wurden für dieses Release hinzugefügt:
Eine Liste der XML-Elemente, die Sie in Ihrem Manifest verwenden, um Ihre Leistungsindikatoren zu definieren, finden Sie unter Leistungsindikatorenschema.
Informationen zum CTRPP-Präprozessortool, das Ihr Manifest analysiert und den Code generiert, den Sie als Ausgangspunkt für Ihren Anbieter verwenden, finden Sie unter CTRPP.