Xperf のプロファイルを使用する
このセクションでは、プロファイルを使用してトレースをキャプチャする方法について説明します。 メモリを分析する場合、ETW はライト スルーし、キャッシュを妨げることがないため、ファイルにトレースを書き込むことを検討します。 ディスク I/O を分析する場合は、メモリ内の循環バッファーにトレースを保存することを検討します。 また、メモリ内のバッファーに収まらない長いトレースをキャプチャする必要がある場合や、トレース コンテンツの最後の 5 秒から 10 秒のみを確認したい場合などは、他にも考慮事項があります。
手順
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]
ファイル ベースのトレースを使用することを選択した場合は、次のコマンドを使用して InSequentialFile トレース プロファイルを開始します。
xperf -start perf!GeneralProfiles.InSequentialFile
問題が発生した場合は、エラーが報告されます。 たとえば、同じプロファイルを 2 回開始すると、セッションが既に実行されているというエラーが発生します。
次のコマンドを使用して、特定のプロファイルに対して既に開始されている InSequentialFile ロガーを示します。
xperf -profileloggers perf!GeneralProfiles.InSequentialFile
このコマンドへの応答は、次の例のようになります。
Session Status for "perf!GeneralProfiles.InSequentialFile":
"NT Kernel Logger" : Running
PerfCoreUserSession_InSequentialFile : Running
次のコマンドを使用して、InSequentialFile トレース プロファイルを停止し、トレースを保存し、Merged.etl などのトレース ファイルにマージします。
xperf -stop perf!GeneralProfiles.InSequentialFile merged.etl
問題が発生した場合は、エラーが報告されます。
InSequentialFile トレース プロファイルを開始し、開始時、ロガーを開始するすべての ETW セッションの MaxBuffers 値を 256 にオーバーライドします。 この操作を実行するには、次のコマンドを使用します。
xperf -start perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
問題が発生した場合は、エラーが報告されます。
次のコマンドを使用して、トレース プロファイルで指定されているアクティブな InSequentialFile ETW ロガーの MaxBuffers 値を更新します。
xperf -update perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
このコマンドを実行した後に、応答は表示されません。