使用探查器命令行检测本机独立组件,并收集计时数据

本主题介绍如何使用 Visual Studio 命令行分析工具检测 C++、.exe 或 .dll 文件等本机组件并收集详细的计时数据。

要使用检测方法从组件收集详细计时数据,可使用 VSInstr.exe 工具生成该组件的受检测版本。 然后启动探查器。 在执行受检测组件时,会自动将计时数据收集到数据文件中。 在分析会话过程中可以暂停和恢复数据收集。

分析工具的路径是 Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector

注意

若要使用探查器命令行工具,必须将工具路径添加到命令提示符窗口的 PATH 环境变量中,或将其添加到命令本身。

要结束分析会话,请关闭目标应用程序,然后显式关闭探查器。

启动分析会话

使用检测方法启动分析:

  1. 打开一个命令提示符窗口。

  2. 使用 VSInstr 工具生成目标应用程序的受检测版本。

  3. 启动探查器。 类型:

    VSPerfCmd /start:trace /output:OutputFile [Options]

    • /start:trace 选项初始化探查器。

    • /output:OutputFile 选项需要与 /start 一起使用。 OutputFile 指定分析数据 (.vsp) 文件的名称和位置。

      可以将以下一个或多个选项与 /start:trace 选项一起使用。

    选项 说明
    /user:[Domain\]UserName 指定拥有所分析进程的帐户的域和用户名。 仅当运行进程的用户不是已登录用户时,才需要此选项。 进程所有者在 Windows 任务管理器的“进程”选项卡上的“用户名”列中列出 。
    /crosssession 启用其他会话中的进程分析。 如果应用程序在其他会话中运行,则需要此选项。 会话标识符列于 Windows 任务管理器的“进程”选项卡上的“会话 ID”列中。 可以将 /CS 指定为 /crosssession 的缩写。
    /globaloff 在暂停数据收集的情况下启动探查器。 使用 /globalon 可恢复分析。
    /counter:Config Config 中所指定的处理器性能计数器收集信息。 计数器信息将添加到在每个分析事件中收集的数据中。
    /wincounter:WinCounterPath 指定要在分析期间收集的 Windows 性能计数器。
    /automark:Interval 仅与 /wincounter 一起使用。 指定两次 Windows 性能计数器收集事件相隔的毫秒数。 默认值为 500 毫秒。
    /events:Config 指定要在分析期间收集的 Windows 事件跟踪 (ETW) 事件。 ETW 事件收集在单独的 (.etl) 文件中。
  4. 以典型方式启动目标应用程序。

控制数据收集

在目标应用程序运行时,可以通过使用 VSPerfCmd.exe 选项开始和停止向文件写入数据,从而控制数据收集。 通过控制数据收集,可以针对程序执行的特定部分(如启动或关闭应用程序)进行数据收集。

启动和停止数据收集:

  • 以下选项对可启动和停止数据收集。 在单独的命令行上指定每个选项。 可多次打开和关闭数据收集。

    选项 描述
    /globalon /globaloff 启动 ( /globalon) 或停止 ( /globaloff) 所有进程的数据收集。
    /processon:PID/processoff:PID 启动 ( /processon) 或停止 ( /processoff) 由进程 ID (PID) 指定的进程的数据收集。
    /threadon:TID [/threadoff]../profiling/threadon-and-threadoff.md) TID 启动 ( /threadon) 或停止 ( /threadoff) 由线程 ID (TID) 指定的线程的数据收集。

结束分析会话

若要结束分析会话,请关闭正在运行受检测组件的应用程序,然后调用 VSPerfCmd/shutdown 选项来关闭探查器和分析数据文件。

结束分析会话:

  1. 关闭目标应用程序。

  2. 关闭探查器。 类型:

    VSPerfCmd /shutdown