bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[原] Intel平台gcc4,gcc3,icc测试

Posted by bianbian on 2007-09-24 12:20


本文Tags: , , , ,

[from zhch begin]
以一个简单的计算程序为例:

int main() {
double s=0;
int i;
for(i=200000001; i>=1; i-=4) s+=1.0/i-1.0/(i+2);
printf(”Pi=%f\n”, s*4);
}

这是一个常见的算Pi的程序,基本算法是Pi/4=1-1/3+1/5-1/7+…..
[from zhch end]

Slackware 12.0预装了gcc 4.1.2,我手动装了gcc 3.4.6,和icc 10.0。下面是测试结果:

bbs@bbs:~/test$ gcc -o PI.gcc PI.c -O3 -march=pentium4 -msse2 -mmmx
PI.c: In function ‘main’:
PI.c:5: warning:incompatible implicit declaration of built-in function ‘printf’

bbs@bbs:~/test$ icc -o PI.icc PI.c -O3 -xP
PI.c(5): warning #266: function “printf” declared implicitly
printf(”Pi=%f\n”, s*4);
^
PI.c(4): (col. 9) remark: LOOP WAS VECTORIZED.

bbs@bbs:~/test$ gcc3 -o PI.gcc3 PI.c -O3 -march=pentium4 -msse2 -mmmx

bbs@bbs:~/test$ time PI.gcc; time PI.gcc3; time PI.icc
Pi=3.141593

real 0m1.568s
user 0m1.544s
sys 0m0.016s
Pi=3.141593

real 0m1.551s
user 0m1.544s
sys 0m0.008s
Pi=3.141593

real 0m1.246s
user 0m1.212s
sys 0m0.012s

测试环境:Intel(R) Xeon(TM) MP CPU 3.00GHz * 4, 8G MEM

文件大小:
bbs@bbs:~/test$ v PI*
-rw-r–r– 1 bbs bbs 140 2007-09-23 22:28 PI.c
-rwxr-xr-x 1 bbs bbs 6365 2007-09-23 23:08 PI.gcc*
-rwxr-xr-x 1 bbs bbs 6343 2007-09-23 23:47 PI.gcc3*
-rwxr-xr-x 1 bbs bbs 19769 2007-09-23 23:08 PI.icc*

果然跟一些文章说的,gcc4比gcc3编译结果和运算速度都有所下降,icc在Intel平台下确实优化比较明显,毕竟是自己家的东西。

标签: , , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Linux, Technology | 1 Comment »