程序让生活更美好

半亩方塘 天光云影

  C++博客 ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  55 随笔 :: 4 文章 :: 202 评论 :: 0 Trackbacks

三款编译器性能的简单比较

最近刚给我的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

申明 : 以上测试存在很多不足的地方,仅仅使用了一种运算测试,其实我觉得要进行比较全面的测试才会得到比较可信的结果,本结果仅供参考。

posted on 2006-05-26 15:50 北风之神007 阅读(1626) 评论(0)  编辑 收藏 引用 所属分类: c/c++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理