start

显示记录器启动选项。

xperf [-start [LoggerName] [ProfileFileName!ProfileName|SessionName]|-update [LoggerName]|[ProfileFileName!ProfileName|SessionName]] -flush [LoggerName] -save ProfileFileName!ProfileName|SessionName merged.etl -setprofint [<n>] [cached] -seteresourcesample <n1> <n2> <n3> -setspinlocksample <n1> <n2> <n3> -pooltag <P1>+<P2>+<P3>+<P4> -on (GUID|KnownProviderName)[:Flags[:Level[<:0xnnnnnnnn|’stack|[,]sid[,]tsid’]]]

参数

命令 说明

-start [LoggerName]|[ProfileFileName!ProfileName|SessionName]]

启动 LoggerName 的日志记录会话,启动 ProfileFileName 文件中定义的配置文件 ProfileName 中的记录器,或者启动 ProfileFileName 文件中定义的记录器 SessionName。

-update [LoggerName]|[ProfileFileName!ProfileName|SessionName]]

更新 LoggerName 的日志记录会话,更新 ProfileFileName 文件中定义的配置文件 ProfileName 中的记录器,或更新 ProfileFileName 文件中定义的记录器 SessionName。

-flush LoggerName

刷新 LoggerName 的日志记录会话。 此参数是保存缓冲区模式跟踪所必需的(请参阅下面的 -buffering 参数)。 要保存缓区冲模式跟踪,必须签发 -flush 参数。

-capturestate LoggerName Flags

从标志中指定的提供程序将状态捕获到非内核日志记录会话。 接受的提供程序格式与 -on 的相同。 如果指定了标志和级别,则在捕获状态时启用它们。

在使用 –buffering 选项启动的跟踪中调用此命令。 必须后跟 –stop 才能停止跟踪。

-on Flags|Groups

对于内核日志记录会话,要启用的内核标志和组的序列用加号 (+) 分隔。 对于用户日志记录会话,要启用的提供程序的序列用加号 (+) 分隔。 接受的提供程序格式为 (GUID|KnownProviderName)[:Flags[:Level]]。 有关有效标志的列表,请参阅提供程序

-f filename

将事件记录到指定文件。 内核跟踪的默认值为 \Kernel.etl,用户跟踪的默认值为 \User.etl。

-buffersize Size

将跟踪缓冲区大小设置为 Size,以 KB 为单位。 可能的值为 4 到 1024。 默认值为 64。

-minbuffers n

将最小跟踪缓冲区数设置为 n。 默认值为 64。

-maxbuffers n

将最大跟踪缓冲区数设置为 n。 默认值为 320。

-maxfile Size

将最大文件大小设置为 Size MB。

-flushtimer n

将刷新计时器设置为 n 秒。

-boottrace Flags|Groups|off

配置 Windows 记录器的事件跟踪以跟踪启动。 将标志设置为“关闭”以关闭启动跟踪。 所有日志控制都可以与此命令结合使用。 与 -f 结合使用以记录到 \Perf.etl 以外的文件。

-realtime

启用实时跟踪。

-buffering

启用缓冲模式跟踪。 要保存,请使用 -flush。 -stop 选项不保存跟踪。

-filemode Mode

设置文件模式。 默认值为“顺序”。 可能的模式:“顺序”、“循环”、“追加”和“新文件”。

-clocktype ClockType

设置时钟类型。 默认值为“PerfCounter”。 可能的类型:“顺序”、“PerfCounter”、和“系统时间”。

-stackwalk flags|@file

为指定为 Flag+... 的事件启用堆栈遍历,或解析标志的 file 文件。 有关详细信息,请参阅 stackwalk

-pids pid [...]

将标志应用于进程 pid [...]。 与专用记录器结合使用。

指定多个 pid 时,用空格隔开,如 -Pids 1234 6789 中所示

-pidnewprocess <command-line>

将标志应用于 Xperf 将以<命令行>开始的新进程。 与专用记录器结合使用。

-waitfornewprocess

等待使用 -pidNewProcess 创建的新进程在退出前返回。

-heap

在由 Pid 和 PidNewProcess 指定的进程中启用堆跟踪。

-critsec

在由 Pid 和 PidNewProcess 指定的进程中启用临界区跟踪。

-setprofint [<n>] [cached]

将采样配置文件间隔设置为 <n> [1221..10000000]。 如果指定了缓存,则间隔将缓存在 ETW 中,并且每当启动具有采样配置文件的新 ETW 内核记录器时重新应用。 单位为 100ns。 n 的默认值为 10000;即 1ms:未缓存。

-save ProfileFileName!ProfileName|SessionName merged.etl

刷新文件 ProfileFileName 中定义的配置文件 ProfileName 中的记录器,并将 ETL 文件合并到 merge.etl;或刷新在文件 ProfileFileName 中定义的记录器 SessionName 并将 ETL 文件合并到 Merged.etl。

-seteresourcesample <n1><n2><n3>

设置 ERESOURCE 采样,其中 n1 释放采样率大于或等于 1000,n2 争用采样率大于或等于 1,n3 过度超时次数大于或等于 1。 争用采样率是发生冲突时获取自旋锁事件的速率。 例如,如果此值为 100,则每 100 次自旋锁冲突获取一个自旋锁事件。

-setspinlocksample <n1><n2><n3>

将自旋锁自旋阈值设置为 <n1> [ >=1]。 将自旋锁获取采样率设置为 <n2> [ >= 1000]。 将自旋锁争用采样率设置为 <n3> [ >= 1]。 只有 64 位 Windows 7、Windows Server 2008 R2 和更新版本的操作系统支持自旋锁检测。

-pooltag <P1>+<P2>+<P3>+<P4>

设置用加号 (+) 或分号 (;) 分隔的池标记筛选器 (Pn)。 对单字符通配符使用问号 (?),对多字符通配符使用星号 (*)。 最多可以指定四个筛选器。

注解

可以使用多个启动选项启动多个记录器,每个选项后跟要应用于该记录器的选项。 如果省略 LoggerName-start LoggerName,则隐含内核记录器。 任何时候都只能存在一个内核记录器实例。 如果其中一个记录器无法启动,则所有已启动的记录器都将停止。

Xperf 选项