Freigeben über


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

  1. 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]

  2. 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.

  3. 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

  4. 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.

  5. 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.

  6. 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.

XPerf-Profile