首页
/ Intel PCM 工具在 Windows 系统下的编译与使用指南

Intel PCM 工具在 Windows 系统下的编译与使用指南

2025-07-10 03:58:23作者:房伟宁

工具概述

Intel Performance Counter Monitor (PCM) 是一套用于监控 Intel 处理器性能计数器的工具集,能够提供处理器核心、内存控制器、QPI 链路等关键组件的详细性能数据。本文将详细介绍在 Windows 系统下编译和安装 PCM 工具的完整流程。

环境准备

在开始编译前,需要准备以下开发环境:

  1. Visual Studio:建议使用最新版本,安装时需要选择:

    • "使用 C++ 的桌面开发"工作负载
    • 包含"C++ CMake 工具"
    • ".NET 桌面开发"工作负载
  2. Windows SDK:提供 Windows 平台开发所需的核心 API

  3. 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. 安装步骤

  1. 以管理员身份创建安装目录:C:\Program Files (x86)\PCM\
  2. 将编译好的 msr.syspcm.exe 复制到该目录
  3. 以管理员身份运行 pcm.exe

权限设置:可以通过右键点击可执行文件 → 属性 → 兼容性 → 特权等级,勾选"以管理员身份运行此程序"来永久设置管理员权限。

图形化性能监视器前端

PCM 还提供了与 Windows 性能监视器(Perfmon)集成的图形化界面:

  1. msr.sys 复制到 c:\windows\system32 目录
  2. 编译 pcm-lib.dllPCM-Service.exe
  3. 将这些文件复制到 PCM 安装目录
  4. 以管理员身份运行安装命令:
    PCM-Service.exe -Install
    net start pcmservice
    
  5. 启动性能监视器即可看到新增的 PCM 计数器

替代方案:WinRing0 驱动

如果无法编译 MSR 驱动,可以使用第三方开源的 WinRing0 驱动作为替代方案(仅限测试环境):

  1. 从 RealTemp 或 OpenHardwareMonitor 等工具获取 WinRing0 驱动文件
  2. 将相关 DLL 和 SYS 文件复制到:
    • PCM 可执行文件所在目录
    • c:\windows\system32 目录
  3. 重新运行 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"错误,有两种解决方案:

  1. 找出先于 PCM 启动的性能计数器应用并禁用
  2. 在 machine.config 文件中增加:
<system.diagnostics>
  <performanceCounters filemappingsize="2097152" />
</system.diagnostics>

注意事项

  1. 对于超过 64 个逻辑核心的系统,必须使用 x64 平台模式编译
  2. Windows 7/Server 2008 R2 及更高版本必须以管理员身份运行
  3. 生产环境建议使用官方 MSR 驱动而非 WinRing0 驱动

通过以上步骤,您可以在 Windows 系统上成功部署和使用 Intel PCM 工具,获取详细的处理器性能数据。