三款編譯器性能的簡單比較
最近剛給我的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
。
申明
:
以上測試存在很多不足的地方,僅僅使用了一種運算測試,其實我覺得要進行比較全面的測試才會得到比較可信的結果,本結果僅供參考。