分析工具中的 CPU 和 Windows 计数器
利用 Visual Studio 2012 探查器,可以收集操作系统(Windows 计数器)生成的性能数据和处理器单元(CPU 计数器)生成的性能数据。
要求
- Visual Studio 旗舰版, Visual Studio 高级专业版, Visual Studio Professional
说明 |
---|
Windows 8 和 Windows Server 2012 中的增强安全功能需要在 Visual Studio 探查器收集这些平台上的数据的方式上的重大更改。Windows 应用商店应用程序还需要新的集合技术。请参见分析 Windows 8 和 Windows Server 2012 应用程序。 |
Windows 计数器
Windows 计数器是 Windows 诊断基础结构的一部分,该基础结构提供有关操作系统或者应用程序、服务或驱动程序的性能的信息。Windows 计数器依赖于当前计算机的配置,其他计算机上可能不提供。Windows 性能计数器以分析标记的形式收集在分析数据文件中,这些计数器然后可用于筛选视图和报告。
CPU 计数器
CPU 计数器是计算机 CPU 的一项功能,用于存储与硬件有关的事件计数。当使用检测分析方法收集 CPU 计数器数据时,该数据附加到函数和模块的数据。可以使用检测方法收集多个 CPU 计数器。使用采样方法时,需要选择一个要用作采样的事件的计数器。
性能计数器是特定于 CPU 的。在启用同一性能计数器时,不同型号和版本的 CPU 会有明显不同的配置设置。Visual Studio 2012 探查器可移植事件将某些通用性能计数器从特定的处理器中分离出来,使您可以收集或采样泛型性能事件。
如果您在使用探查器时要对特定事件进行计数(例如 L2 缓存未命中数),则可以围绕该事件发送方生成性能会话。您可以在具有 L2 缓存的任意 CPU 上执行此操作。性能会话可以在平台之间自由移动,而不必修改。
Visual Studio探查器继续支持特定平台的特定事件。例如,Pentium 4 平台上的开发人员可能需要对特定于 NetBurst 体系结构的事件进行计数。这个事件是不可移植的,但是仍可用于特定平台上的特定性能会话的开发人员。
可移植事件和平台事件
可移植事件是一组不特定于具体处理器的 CPU 计数器。所有其他 CPU 计数器都称为平台事件,在各种平台上可能不受支持。
可移植事件和平台事件的计数器都是在 .XML 文件中定义的,这些文件中提供了与计数器相关的特定值。对于不同的 CPU 有多个文件,因为不同类型的 CPU(例如 Intel CPU 和 AMD CPU)的数据不同。Visual Studio 2008 探查器使用此信息向性能测量的用户显示合适的计数器(可移植计数器和平台计数器)。
可移植事件
可移植事件包含以下事件:
常规事件
事件名称 |
事件说明 |
---|---|
Instructions Retired |
指示事件完成之前已执行的指令的个数。 |
Non Halted Cycles |
仅指示处理器未处于停止状态的那些时钟周期,例如等待 I/O 的时钟周期。 |
Front End Events
事件名称 |
事件说明 |
---|---|
ITLB Misses |
指示未命中的指令转换旁视缓冲区查找的个数。 |
分支事件
事件名称 |
事件说明 |
---|---|
Branches Retired |
指示事件完成之前已执行的分支指令的个数。 |
Mis-predicted Branches |
指示由于处理器预测路径错误而导致的误报分支。误报分支会影响性能,因为处理器必须放弃所有已完成的工作,然后在正确的路径上重新开始。 |
内存事件:
事件名称 |
事件说明 |
---|---|
L2 Cache Read Misses |
指示二级缓存读取未命中的次数。 |
L2 Cache Read References |
指示二级缓存读取引用的次数。它包括加载未命中以及独占读取 (RFO) 未命中和命中次数。 |
查看可用计数器
可以在命令提示窗口中列出Visual Studio IDE 中的可用 CPU 计数器。
Visual Studio UI
若要列出 Visual Studio IDE 中计算机上的可用计数器,必须在性能浏览器中打开探查器性能会话。
查看当前平台支持的所有 CPU 计数器的列表
在“性能资源管理器”中,右击性能会话,然后单击**“属性”**。
执行下列操作之一:
单击**“采样”,再从“样本事件”列表中选择“性能计数器”。“可用的性能计数器”**中列出了 CPU 计数器。
注释 单击**“取消”**可返回到以前的采样配置。
- 或 -
选择**“CPU 计数器”,再选择“收集 CPU 计数器”。“可用的计数器”**中列出了 CPU 计数器。
注释 单击**“取消”**可返回到以前的计数器收集配置。
查看当前平台支持的 Window 计数器的列表
在“性能资源管理器”中,右击性能会话,然后单击**“属性”**。
单击**“Windows 计数器”**。
选择**“收集 Windows 计数器”**。
从**“计数器类别”**列表中选择计数器组。列表框中即显示该组的 Windows 计数器。
**注释:单击“取消”**可返回到以前的计数器收集配置。
命令行
使用 VSPerfCmd 命令行工具,可以从命令行列出计算机上可用的 CPU 计数器。
列出当前平台支持的 CPU 计数器
打开命令提示符窗口。
类型
<Visual Studio Performance Tools Directory>\VSPerfCmd /querycounters
其中 <Visual Studio Performance Tools Directory> 是 Visual Studio 安装的性能工具目录的路径,通常为
C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools