程序代码如下:
环境: Windows XP SP3+Intel Core(TM)2CPU: 主频2.5G, 4G内存. 结果汇总如下:
n=100000, m=3000 | |||
| 整数加法(G次/秒) | 单精度浮点加法(G次/秒) | 双精度浮点加法(G次/秒) |
Intel c++编译器 | 9.3871 | 6.19149 | 3.12903 |
Visual c++编译器 | 2.06383 | 0.277937 | 0.810585 |
n=100000000, m=1 | |||
| 整数加法(G次/秒) | 单精度浮点加法(G次/秒) | 双精度浮点加法(G次/秒) |
Intel c++编译器 | 1.5873 | 1.6129 | 0.8 |
Visual c++编译器 | 1.28205 | 0.266667 | 0.714286 |
结果分析: visual C++编译器对于两组参数不敏感, 结果变化不大, 而Intel C++编译器的结果有显著变化. 据Intel C++的结果来看, 在程序经过较好的优化的前提之下, 内存的访问延迟对运算速度的影响是很大的, 编程时要尽可能少量的内存访问, 尽可能多的CPU运算.