我发现在我用于科学计算的全新无头工作站机器上,在 Ubuntu 下运行一些计算代码的性能相当差。我注意到在 Ubuntu 上运行一些稍微复杂的代码的速度与在我用于开发的旧 Mac 笔记本电脑上运行的速度不同。但是,我设法将其提炼成一个非常简单的示例,该示例仍然比我的旧机器表现出不那么出色的改进:
#include <stdio.h>
#include <math.h>
int main() {
double res = 0.0;
for(int i=1; i<200000000; i++) {
res += exp((double) 100.0/i);
}
printf("%lf", res);
return(0);
}
现在,Mac 是一台运行 OS X 10.5 的 2.4GHz Core 2 Duo MacBook Pro 近 5 年,运行此代码大约需要 6.8 秒。然而,在运行 Ubuntu 11.10 的全新 3.4GHz Core i7 Dell 上,大约需要 6.1 秒!有人能告诉我这里发生了什么吗,因为一台使用了将近 5 年的笔记本电脑与全新的台式工作站相差不到 10% 是荒谬的?更荒谬的是,我可以看到 Core i7 使用监控工具加速到近 4GHz!
Mac 编译:
gcc -o test test.c -std=gnu99 -arch x86_64 -O2
Ubuntu编译:
gcc -o test test.c -std=gnu99 -m64 -O2 -lm
谢谢,
路易斯