我有一个 C++ 程序(用 Visual Studio 2010 编译,适用于 windows x64),它进行了一些数学优化并且没有交互元素((单个)进程只是通过控制台启动,并在优化完成时结束)。运行时取决于给定的输入,例如可以是 ca。4 分钟。
当我在我的机器(戴尔 Latitude E6420、英特尔酷睿 i7-2720QM 2,2 Ghz、8GB RAM、Windows 7(64 位))上运行这个进程时,它使用了整个 CPU 的 13%(这应该是正确的,因为它也可以使用一个单核)。问题是,在使用一个内核的资源时,它的运行速度比另一台戴尔 Latitude E6420(具有完全相同的统计数据,甚至安装的软件几乎相同)慢 4 到 8 倍。例如:该过程在我的机器上运行 20 分钟,但在另一台机器上运行 4 分钟。
除了系统进程之外没有其他进程在运行(除了正在运行的c++进程外,CPU使用率接近0%)。
数值错误或其他数学问题是不可能的,经过验证,该算法在两台机器上的表现完全相同,只是速度较慢(同时具有完全相同的处理器使用率(= 13%)。
我想避免重新安装 Windows,所以问题是,是否还有其他原因,例如硬件缺陷、BIOS 设置错误等?所有驱动程序都是最新的。
知道是什么导致了运行时间的这种极端差异吗?
您写道,两台机器都是 Dell Latitude E6420。由于两者具有相同的硬件,您应该能够交换硬盘驱动器。这样您就可以检测软件是否存在问题,而无需重新安装。
其他需要检查的事项是 BIOS 设置(相同设置和相同版本的 BIOS)。
如果两者都没有产生任何结果,请检查硬盘。Windows 中的模型和事件查看器(将记录读取错误)。
最后,使用 CPU-Z 监控 CPU。
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |