三款编译器性能的简单比较
最近刚给我的VC6.0装上了Intel的9.0版本的编译器,觉得编译的时候好像速度比原来VC的稍微要慢一点,
于是我突然觉得无聊想用简单的方法比较一下编译器编译过的程序之间的运行速度。
我的机器上刚好有
DEV C++,VC6.0,
还有就是
Intel Complier9.0
了。
首先写了一个简单的程序:
1 #include<time.h>
2
3 #include<stdlib.h>
4
5 #include <stdio.h>
6
7 int main()
8
9 {
10
11 long beginTime =clock();//获得程序开始时间
12
13 printf("beginTime= %d\n",beginTime);
14
15 long i=0;
16
17 for(i;i<100000;i++)printf("%d\n",i);//输出100000行数字
18
19 long endTime=clock();//获得运算结束时间
20
21 printf("beginTime= %d\n",beginTime);
22
23 printf("endTime= %d\n",endTime);
24
25 printf("endTime-beginTime= %d",endTime-beginTime);
26
27 getchar();//这一行是因为Dev C++运行的时候结果会一闪而过,用它来停住结果
28
29 return 0;
30
31 }
32
33
34
35
在没有对程序进行优化的情况下,三种编译器编译的程序运行时间如下(单位:毫秒):
|
次数
|
Dev C++(MinGW3.4.2)
|
VC6.0
|
Intel Complier9.0
|
无优化运行时间
|
1
|
11786
|
10945
|
11186
|
2
|
10735
|
11837
|
11696
|
3
|
12768
|
10605
|
10635
|
平均时间
|
11757
|
11129
|
11172
|
优化后运行时间
|
1
|
11827
|
10665
|
10595
|
2
|
11867
|
11806
|
11015
|
3
|
10605
|
10705
|
10725
|
平均时间
|
11433
|
11058
|
10778
|
测试的环境是
Windows XP Pro+P3m 1.2G 512M SDR
。在进行测试的时候,我尽可能把其他无关的程序都关掉,让它们在相对比较稳定的环境下进行运算,但是这样并不能保证结果没有偏差,因为计算的次数有限,最后的结果很可能由于随机出现的情况而偏差。从上面结果来看,三者的性能差距不是太大。在优化之后,速度是
Intel Complier9.0>VC6.0>MinGW3.4.2
。
申明
:
以上测试存在很多不足的地方,仅仅使用了一种运算测试,其实我觉得要进行比较全面的测试才会得到比较可信的结果,本结果仅供参考。