Intel PCM 工具在 Windows 系统下的编译与使用指南
工具概述
Intel Performance Counter Monitor (PCM) 是一套用于监控 Intel 处理器性能计数器的工具集,能够提供处理器核心、内存控制器、QPI 链路等关键组件的详细性能数据。本文将详细介绍在 Windows 系统下编译和安装 PCM 工具的完整流程。
环境准备
在开始编译前,需要准备以下开发环境:
-
Visual Studio:建议使用最新版本,安装时需要选择:
- "使用 C++ 的桌面开发"工作负载
- 包含"C++ CMake 工具"
- ".NET 桌面开发"工作负载
-
Windows SDK:提供 Windows 平台开发所需的核心 API
-
Windows Driver Kit (WDK):用于驱动开发,安装时需勾选"安装 Windows Driver Kit Visual Studio 扩展"
命令行工具编译与安装
1. MSR 驱动编译
MSR (Model Specific Register) 驱动是 PCM 工具访问处理器性能计数器的关键组件:
# 进入驱动源码目录
cd src\WinMSRDriver
# 使用 MSBuild 编译驱动
MSBuild.exe MSR.vcxproj -property:Configuration=Release -property:Platform=x64
编译完成后,会在 x64\Release
目录下生成 msr.sys
驱动文件。
注意:对于 Windows 7 及更高版本系统,需要额外对驱动进行数字签名。
2. PCM 主程序编译
可以使用 CMake 或 Visual Studio 进行编译:
# 使用 CMake 构建
cmake -B build
cmake --build build --config Release --parallel
或者直接在 Visual Studio 中打开生成的 PCM.sln
解决方案文件进行编译。
3. 安装步骤
- 以管理员身份创建安装目录:
C:\Program Files (x86)\PCM\
- 将编译好的
msr.sys
和pcm.exe
复制到该目录 - 以管理员身份运行
pcm.exe
权限设置:可以通过右键点击可执行文件 → 属性 → 兼容性 → 特权等级,勾选"以管理员身份运行此程序"来永久设置管理员权限。
图形化性能监视器前端
PCM 还提供了与 Windows 性能监视器(Perfmon)集成的图形化界面:
- 将
msr.sys
复制到c:\windows\system32
目录 - 编译
pcm-lib.dll
和PCM-Service.exe
- 将这些文件复制到 PCM 安装目录
- 以管理员身份运行安装命令:
PCM-Service.exe -Install net start pcmservice
- 启动性能监视器即可看到新增的 PCM 计数器
替代方案:WinRing0 驱动
如果无法编译 MSR 驱动,可以使用第三方开源的 WinRing0 驱动作为替代方案(仅限测试环境):
- 从 RealTemp 或 OpenHardwareMonitor 等工具获取 WinRing0 驱动文件
- 将相关 DLL 和 SYS 文件复制到:
- PCM 可执行文件所在目录
c:\windows\system32
目录
- 重新运行 PCM 工具
常见问题解决
驱动加载失败
若出现"Starting MSR service failed with error 3"错误,可尝试:
pcm --uninstallDriver
然后重新启动系统。
Cygwin 环境问题
在 Cygwin shell 中运行 PCM.exe 时,由于信号处理机制差异,可能无法正确清理 PMU 配置。此时需要在后续运行中添加 -r
参数重置配置。
服务启动失败
检查 Windows 事件查看器 → Windows 日志 → 应用程序,查找 PCM-Service 相关错误信息。
计数器内存不足
若出现"custom counter file view is out of memory"错误,有两种解决方案:
- 找出先于 PCM 启动的性能计数器应用并禁用
- 在 machine.config 文件中增加:
<system.diagnostics>
<performanceCounters filemappingsize="2097152" />
</system.diagnostics>
注意事项
- 对于超过 64 个逻辑核心的系统,必须使用 x64 平台模式编译
- Windows 7/Server 2008 R2 及更高版本必须以管理员身份运行
- 生产环境建议使用官方 MSR 驱动而非 WinRing0 驱动
通过以上步骤,您可以在 Windows 系统上成功部署和使用 Intel PCM 工具,获取详细的处理器性能数据。