VSPerfCmd

更新:2007 年 11 月

VSPerfCmd 工具用于启动和停止性能数据收集。它使用以下语法:

VSPerfCmd [/U] [/options]

下表介绍 VSPerfCmd 工具选项:

选项

说明

U

重定向控制台的输出编写为 Unicode。必须是指定的第一个选项。

Start:mode

启动 VSPerfMon 并等待直到它被初始化。需要 Output 开关。

mode 可以是以下各项之一:

COVERAGE - 收集代码覆盖率数据

SAMPLE - 收集取样数据

TRACE - 收集检测数据

Output:filename

指定输出文件名。

CrossSession|CS

启用跨进程分析。选项名称 CROSSSESSION 和 CS 都受支持。

User:[domain\]username

与 START 选项一起使用。允许客户端从指定帐户访问监视器。

WaitStart[:n]

等待数据收集记录器初始化。如果指定了 n,则 VSPerfCmd 将最多等待 n 秒。如果没有指定 n,则 VSPerfCmd 将无限期等待。这将简化 VSPerfCmd 作为批处理过程的一部分的使用。

Counter:cfg

使用采样分析方法时,指定 CPU 计数器和要用作采样间隔的事件数。可以只对一个计数器值进行采样。

使用检测分析方法时,指定要在每个检测点收集的 CPU 计数器。可以通过指定多个计数器选项来收集多个计数器数据(仅限检测)。

使用以下语法指定计数器 (cfg) 数据:

CounterName[,Reload[,FriendlyName]]

  • CounterName 是由 VSPerfCmd/QueryCounters 命令返回的计数器的名称。

  • Reload 是计数器事件采样间隔。使用检测方法时,将忽略 Reload。

  • “友好名称”是可选的。如果指定,则字符串将替换 分析工具视图和报告中的 CounterName 值。

QueryCounters

显示平台的有效计数器列表。

WinCounter:路径

指定要包含标记数据的 Windows 性能计数器。path 是 PDH 计数器路径格式的 Windows 性能计数器字符串。例如:

\Processor(0)\% Processor Time

\System\Context Switches/sec

AutoMark:n

使用 /WINCOUNTER 时指定自动标记之间的时间间隔(单位为毫秒)。四舍五入到最接近的 500ms。

使用 0 可禁用自动标记。(如果没有指定,默认值为 500)

Events:option

EVENTS 选项控制事件跟踪窗口 (ETW) 的事件收集。收集的数据由 ETW 提供程序提供。option 格式为:

<on | off>, <guid>[,flags[,level]]

<on | off>, <provider name>[,flags[,level]]

guid - 提供程序控制 GUID。或者,如果提供程序已向 WMI 注册,则可以指定提供程序名称来代替 GUID。

flags - 一个以“0x”作为前缀的十六进制标志值。它由事件提供程序定义。有关更多信息,请参见 ETW 提供程序文档。

level - 确定收集多少信息。它由事件提供程序定义。有关更多信息,请参见 ETW 提供程序文档。

重要说明:

当启用了 CLR ETW 事件时,在跟踪视图报告中还将收集额外的启动数据。若要将启动事件从报告中排除,请使用下面的命令:

C:\<路径>VSPerfCmd -events on, \".NET Common Language Runtime\", 0x7fffffff, 5

如果不排除启动事件,那么这些事件就会因为没有在托管对象格式 (MOF) 文件中列出而作为 GUIDS 出现在报告中。有关更多信息,请参见 Sample Managed Object Format (MOF) File(示例托管对象格式 (MOF) 文件)。

另外,EVENTS 选项识别下列公共内核选项:

on, option[,option]

其中 option 是下列各项之一:

Process - 进程事件

Thread - 线程事件

Image - 映像加载和卸载事件

Disk - 磁盘 I/O 事件

File - 文件 I/O 事件

Hardfault - 硬页面错误

Pagefault - 软页面错误

Network - 网络事件

Registry - 注册表访问事件

请注意内核提供程序只能被启用。在监视器关闭之前,既不能禁用它,也不能修改它的标志。

Status

应用于所分析的进程的状态。它列出进程和线程,以及它们当前的分析状态(开启/关闭)。例如,如果进程被停止,STATUS 将不会在报告中指示这一点。它将显示进程已被分析还是没有被分析。

ShutDown[:n]

等待被监视的应用程序关闭或分离,然后关闭 VSPerfMon.exe 并等待关闭完成。如果指定了 n,则 VSPerfCmd 将最多等待 n 秒。如果没有指定 n,则 VSPerfCmd 将无限期等待。这将简化 VSPerfCmd 作为批处理过程的一部分的使用。

GlobalOn

GLOBALON 选项在 GLOBALOFF 后启用分析。在内部,GLOBALON 选项将全局启动/停止计数设置为一。有关更多信息,请参见 GLOBALOFF。

GlobalOff

GLOBALOFF 选项禁用所有分析,并且不收集任何数据。此选项不关闭性能会话。您可以使用此选项避免在应用程序启动或初始化阶段收集数据。

若要避免收集无关数据:

ProcessOn:pid

PROCESSON 在调用 PROCESSOFF 后使用进程 ID (pid) 为特定进程重新启动分析。在内部,PROCESSON 选项为指定的进程将启动/停止计数设置为一。

ProcessOff:pid

PROCESSOFF 选项使用进程 ID (pid) 停止特定进程的分析和数据收集。其他进程或线程继续收集数据。如果您想在进程达到某个状态之前避免收集数据,这将很有用。当进程达到某个状态以后,您可以使用 PROCESSON 选项开始数据收集。在内部,PROCESSOFF 为指定的进程将启动/停止计数设置为零。

ThreadOn:tid

THREADON 在调用 THREADOFF 后使用线程 ID (tid) 为特定线程重新启动分析。在内部,THREADON 选项为指定的线程将启动/停止计数设置为一。

此选项仅在 TRACE 模式中有效。

ThreadOff:tid

THREADOFF 选项使用线程 ID (tid) 停止特定线程的分析和数据收集。

其他进程或线程继续收集数据。如果您想在线程达到某个状态之前避免收集数据,这将很有用。当线程达到某个状态以后,您可以使用 THREADON 选项开始数据收集。在内部,THREADOFF 为指定的线程将启动/停止计数设置为零。

此选项仅在 TRACE 模式中有效。

MARK:标记号[,标记文本]

将标记插入到全局事件流中,并可选择附加标记文本。如果您想要检查两个标记之间的数据,这将很有用。

marknum - ULONG 数据类型的任意值

或者,您可以在代码中调用 MarkProfile API,标记应用程序的特定区域。此信息仅在调用跟踪报告中可用。

采样方法选项

下面的选项仅在 SAMPLE 模式中可用:

选项

说明

Launch:可执行文件

启动指定的命令并附加基于样本的探查器。

Args:参数

启动的应用程序的参数。

Console

在新控制台中启动指定的命令。

Attach:PID[,PID]

将基于样本的探查器附加到指定的进程 ID(PID 或进程名称)。

Detach:PID[,PID]

使基于样本的探查器与指定的进程 ID(PID 或进程名称)分离。

Detach

从所有进程分离基于样本的探查器。

GC[:Allocation|:Lifetime]

此选项仅在取样模式中可用。启用托管内存分析。可以只启用对象的分配跟踪 (GC:allocation),也可以启用对象的分配和生存期的跟踪 (GC:lifetime)。默认值是仅启用分配。它只与 /LAUNCH 选项一起使用时才有效。

PF[:n]

对每 n 个页面错误取样(默认值 = 10)。

Sys[:n]

对每 n 个系统调用取样(默认值 = 10)。

Timer[:n]

对每 n 个周期取样(默认值 = 10000000)。

服务组件和内核模式设备选项

以下选项支持分析服务组件或内核模式设备驱动程序。这些选项用于设置分析权限。这些选项必须从以管理员身份运行的命令行控制台执行。有关更多信息,请参见 Using the Run As Command(使用“运行身份”命令)。

选项

说明

Admin:Security <ALLOW|DENY> 权限[ 权限] <用户|组>

允许或拒绝指定用户或组访问分析服务。

Right 可以是:

CrossSession – 授予用户访问服务以进行跨会话分析的权限;

SampleProfiling - 授予用户访问驱动程序以启动取样分析的权限。也用于在跟踪分析期间访问内核转换信息;

FullAccess - 授予用户 CrossSession 和 SampleProfiling 访问权。

Admin:Security, List

列出分析服务和列表用户权限的当前状态。

Admin: <服务|驱动程序><START|STOP|INSTALL|UNINSTALL>

启动、停止、安装或卸载分析服务组件(服务)或内核模式设备驱动程序(驱动程序)。

Admin: <服务|驱动程序>AutoStart <ON|OFF>

启用或禁用重新启动后自动启动分析组件(服务)或内核模式设备驱动程序(驱动程序)。

VsPerfDrv.sys

以前版本的探查器支持使用 VSPerfDrv.Sys 从 CPU 内核模式应用程序收集数据。VsPerfDrv.sys 已过时。请使用 VsPerfCmd ADMIN 选项来实现此功能。

请参见

参考

VSInstr

VSPerfMon

VSPerfReport

分析工具报告中列的定义