次の方法で共有


Xperf のプロファイルを使用する

このセクションでは、プロファイルを使用してトレースをキャプチャする方法について説明します。 メモリを分析する場合、ETW はライト スルーし、キャッシュを妨げることがないため、ファイルにトレースを書き込むことを検討します。 ディスク I/O を分析する場合は、メモリ内の循環バッファーにトレースを保存することを検討します。 また、メモリ内のバッファーに収まらない長いトレースをキャプチャする必要がある場合や、トレース コンテンツの最後の 5 秒から 10 秒のみを確認したい場合などは、他にも考慮事項があります。

手順

  1. perf!FileIOProfiles.InBuffer などのプロファイルを選択し、次の例のようなコマンドを使用して、その情報を表示します。

    xperf -profiles perf!FileIOProfiles.InBuffer
    

    このコマンドは、すべてのプロファイルの後に、そのプロファイルのセッションとプロバイダーを一覧表示します。

    Profile: FileIOProfiles.InBuffer

    Sessions: FileIOProfiles.InBuffer.Sessions

    Session: FileIOProfiles.InBuffer.Sessions[0].Kernel[0]

    Session: FileIOProfiles.InBuffer.Sessions[0].User[0]

    Providers: FileIOProfiles.InBuffer.Providers

    Provider: FileIOProfiles.InBuffer.Providers[0].Kernel[0]

    Provider: FileIOProfiles.InBuffer.Providers[0].User[0]

  2. ファイル ベースのトレースを使用することを選択した場合は、次のコマンドを使用して InSequentialFile トレース プロファイルを開始します。

    xperf -start perf!GeneralProfiles.InSequentialFile
    

    問題が発生した場合は、エラーが報告されます。 たとえば、同じプロファイルを 2 回開始すると、セッションが既に実行されているというエラーが発生します。

  3. 次のコマンドを使用して、特定のプロファイルに対して既に開始されている InSequentialFile ロガーを示します。

    xperf -profileloggers perf!GeneralProfiles.InSequentialFile
    

    このコマンドへの応答は、次の例のようになります。

    Session Status for "perf!GeneralProfiles.InSequentialFile":

    "NT Kernel Logger" : Running

    PerfCoreUserSession_InSequentialFile : Running

  4. 次のコマンドを使用して、InSequentialFile トレース プロファイルを停止し、トレースを保存し、Merged.etl などのトレース ファイルにマージします。

    xperf -stop perf!GeneralProfiles.InSequentialFile merged.etl
    

    問題が発生した場合は、エラーが報告されます。

  5. InSequentialFile トレース プロファイルを開始し、開始時、ロガーを開始するすべての ETW セッションの MaxBuffers 値を 256 にオーバーライドします。 この操作を実行するには、次のコマンドを使用します。

    xperf -start perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    問題が発生した場合は、エラーが報告されます。

  6. 次のコマンドを使用して、トレース プロファイルで指定されているアクティブな InSequentialFile ETW ロガーの MaxBuffers 値を更新します。

    xperf -update perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    このコマンドを実行した後に、応答は表示されません。

Xperf のプロファイル