Verwenden von XPerf-Profilen
In diesem Abschnitt wird gezeigt, wie Ablaufverfolgungen mithilfe von Profilen erfasst werden. Wenn Sie Arbeitsspeicher analysieren, sollten Sie ihre Ablaufverfolgung in eine Datei schreiben, da ETW durchschreibt und den Cache nicht stört. Wenn Sie Datenträger-E/A analysieren, sollten Sie ihre Ablaufverfolgung in einem Zirkelpuffer im Arbeitsspeicher speichern. Sie sollten auch weitere Überlegungen anstellen, z. B. ob Sie eine lange Ablaufverfolgung erfassen müssen, die nicht in einen arbeitsspeicherinternen Puffer passt, oder ob Sie nur an den letzten 5–10 Sekunden des Ablaufverfolgungsinhalts interessiert sind.
Verfahren
Wählen Sie ein Profil wie perf!FileIOProfiles.InBuffer aus, und führen Sie einen Befehl ähnlich dem folgenden aus, um Informationen darüber anzuzeigen.
xperf -profiles perf!FileIOProfiles.InBuffer
Mit diesem Befehl werden alle Profile aufgelistet, gefolgt von den Sitzungen und Anbietern in diesem Profil:
Profil: FileIOProfiles.InBuffer
Sitzungen: FileIOProfiles.InBuffer.Sessions
Sitzung: FileIOProfiles.InBuffer.Sessions[0].Kernel[0]
Sitzung: FileIOProfiles.InBuffer.Sessions[0].User[0]
Anbieter: FileIOProfiles.InBuffer.Providers
Anbieter: FileIOProfiles.InBuffer.Providers[0].Kernel[0]
Anbieter: FileIOProfiles.InBuffer.Providers[0].User[0]
Wenn Sie eine dateibasierte Ablaufverfolgung verwenden, starten Sie mithilfe des folgenden Befehls ein InSequentialFile-Ablaufverfolgungsprofil.
xperf -start perf!GeneralProfiles.InSequentialFile
Wenn ein Problem auftritt, wird ein Fehler gemeldet. Beispielsweise würde das zweimalige Starten desselben Profils zu einem Fehler führen, der besagt, dass die Sitzung bereits ausgeführt wird.
Sehen Sie sich mithilfe des folgenden Befehls an, welche InSequentialFile-Protokollierungen bereits für ein bestimmtes Profil gestartet wurden.
xperf -profileloggers perf!GeneralProfiles.InSequentialFile
Die Antwort auf diesen Befehl ähnelt dem folgenden Beispiel.
Session Status for "perf!GeneralProfiles.InSequentialFile":
"NT Kernel Logger" : Running
PerfCoreUserSession_InSequentialFile : Running
Beenden Sie das InSequentialFile-Ablaufverfolgungsprofil, speichern Sie die Ablaufverfolgungen, und fügen Sie sie dann mithilfe des folgenden Befehls in eine Ablaufverfolgungsdatei wie „Merged.etl“ zusammen.
xperf -stop perf!GeneralProfiles.InSequentialFile merged.etl
Wenn ein Problem auftritt, wird ein Fehler gemeldet.
Starten Sie das InSequentialFile-Ablaufverfolgungsprofil, und überschreiben Sie zur Startzeit maxBuffers-Werte für alle ETW-Sitzungen, für die Protokollierungen auf 256 gestartet werden sollen. Führen Sie hierzu den folgenden Befehl aus.
xperf -start perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
Wenn ein Problem auftritt, wird ein Fehler gemeldet.
Aktualisieren Sie mithilfe des folgenden Befehls die MaxBuffers-Werte für die aktiven InSequentialFile-ETW-Protokollierungen, die im Ablaufverfolgungsprofil angegeben sind.
xperf -update perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
Nach dem Ausführen dieses Befehls wird keine Antwort angezeigt.