三款編譯器性能的簡單比較
最近剛給我的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行數(shù)字
18?
19?????long?endTime=clock();//獲得運算結(jié)束時間
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++運行的時候結(jié)果會一閃而過,用它來停住結(jié)果
28?
29?????return?0;
30?
31?}
32?
33??
34?
35?
???在沒有對程序進(jìn)行優(yōu)化的情況下,三種編譯器編譯的程序運行時間如下(單位:毫秒):
?
|
次數(shù)
|
Dev C++(MinGW3.4.2)
|
VC6.0
|
Intel Complier9.0
|
無優(yōu)化運行時間
|
1
|
11786
|
10945
|
11186
|
2
|
10735
|
11837
|
11696
|
3
|
12768
|
10605
|
10635
|
平均時間
|
11757
|
11129
|
11172
|
優(yōu)化后運行時間
|
1
|
11827
|
10665
|
10595
|
2
|
11867
|
11806
|
11015
|
3
|
10605
|
10705
|
10725
|
平均時間
|
11433
|
11058
|
10778
|
?
測試的環(huán)境是
Windows XP Pro+P3m 1.2G 512M SDR
。在進(jìn)行測試的時候,我盡可能把其他無關(guān)的程序都關(guān)掉,讓它們在相對比較穩(wěn)定的環(huán)境下進(jìn)行運算,但是這樣并不能保證結(jié)果沒有偏差,因為計算的次數(shù)有限,最后的結(jié)果很可能由于隨機出現(xiàn)的情況而偏差。從上面結(jié)果來看,三者的性能差距不是太大。在優(yōu)化之后,速度是
Intel Complier9.0>VC6.0>MinGW3.4.2
。
申明
:
以上測試存在很多不足的地方,僅僅使用了一種運算測試,其實我覺得要進(jìn)行比較全面的測試才會得到比較可信的結(jié)果,本結(jié)果僅供參考。