概括:我注意到,在我的笔记本电脑上使用 Windows 8.1 时,运行单个 CPU 密集型程序不会导致 CPU 频率达到最大值。我怀疑这是因为进程迁移发生得太快。我想知道是否有办法解决这个问题,或者是否有其他人注意到了这个问题。
细节:
我在 VirtualBox 中运行某个程序,发现它比我预期的要慢得多(CPU 密集型工作负载不应该有太多虚拟化开销)。经过调查,我发现主机 CPU 运行速度为 1.17 GHz,而不是其最大速度 2.53 GHz。经过一些故障排除,我最终只运行Prime95在 Windows 8.1 主机操作系统上使用单线程进行折磨测试(因此我的其余问题忽略了虚拟化)。结果(如下所示)是单个 Prime95 线程也使频率保持在 1.17 GHz
但是,如果我运行 4 线程的 Prime95,那么系统将会完全加载,频率将提升到 2.5 GHz 以上(它具有涡轮模式,因此确切的频率会波动)。
此外,如果我设置 Prime95 进程的 CPU 亲和力以将其限制为单个逻辑 CPU,那么它也会达到其最大频率(约 2.9GHz,由于其他核心处于空闲状态,因此涡轮增压更高)。
我还在这台笔记本电脑的其他分区上安装了 Linux 和 Windows 7,并且我也测试了这些操作系统。它们都没有出现单个进程加速到最大频率的问题。因此,问题似乎与 Windows 8.1 与我的 HP EliteBook 8440p 笔记本电脑的交互方式有关。我在此处展示的屏幕截图是我使用 Prime95 测试时获得的,因为我知道该应用程序只会给 CPU 带来压力。但我更担心的是,我在使用 VirtualBox 和 VMware Workstation 7.1 时都遇到了同样的问题。任何可能的解决方案的想法都值得赞赏。