程序代码如下:
环境: 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运算.