使用 Xperf 配置文件
本节演示如何使用配置文件捕获跟踪。 如果要分析内存,可以考虑将跟踪写入文件,因为 ETW 会完全写入,并且不会干扰缓存。 如果要分析磁盘 I/O,可以考虑将跟踪保存到内存中的循环缓冲区。 还有其他注意事项,例如,是否需要捕获长跟踪,而这个跟踪不适合内存中的缓冲区,或者仅关注跟踪内容的最后 5-10 秒。
过程
选择一个配置文件,例如“perf!FileIOProfiles.InBuffer”,并使用类似于以下示例的命令来显示它的相关信息。
xperf -profiles perf!FileIOProfiles.InBuffer
此命令列出了所有配置文件,后跟该配置文件中的会话和提供程序:
配置文件:FileIOProfiles.InBuffer
会话:FileIOProfiles.InBuffer.Sessions
会话:FileIOProfiles.InBuffer.Sessions[0].Kernel[0]
会话:FileIOProfiles.InBuffer.Sessions[0].User[0]
提供程序:FileIOProfiles.InBuffer.Providers
提供程序:FileIOProfiles.InBuffer.Providers[0].Kernel[0]
提供程序:FileIOProfiles.InBuffer.Providers[0].User[0]
假设你选择使用基于文件的跟踪,请使用以下命令启动“InSequentialFile”跟踪配置文件。
xperf -start perf!GeneralProfiles.InSequentialFile
如果出现问题,则报告错误。 例如,如果启动同一配置文件两次,将导致错误,指出会话已在运行。
使用以下命令显示哪些“InSequentialFile”记录器已针对特定配置文件启动。
xperf -profileloggers perf!GeneralProfiles.InSequentialFile
对此命令的响应类似于以下示例。
“perf!GeneralProfiles.InSequentialFile”的会话状态:
“NT 内核记录器”:正在运行
PerfCoreUserSession_InSequentialFile:正在运行
停止“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
发出此命令后,不显示任何响应。