今天通過測試,我驚訝的發(fā)現(xiàn),在win主機(jī)IIS環(huán)境里,asp.net的運(yùn)行速度竟然比php快70倍,比asp快39倍!這讓我感悟到,wordpress博客或其他php構(gòu)架的cms程序拿到win主機(jī)里運(yùn)行將是一個十分錯誤的選擇。
下面是本人今天的測試記錄。
測試設(shè)備及環(huán)境
測試設(shè)備:自用筆記本
測試系統(tǒng):Windows Server 2003企業(yè)版
運(yùn)行環(huán)境:IIS6.0
測試方法
分別用asp.net、php和asp執(zhí)行一千萬次for循環(huán),獲得執(zhí)行時間。如下為測試代碼:
asp.net
System.DateTime startTime = System.DateTime.Now;
for (long i = 1; i < 10000000; i++)
{
}
System.DateTime endTime = System.DateTime.Now;
System.TimeSpan ts = endTime - startTime;
Response.Write("頁面執(zhí)行時間:" + ts.Milliseconds.ToString("0.000") + " 毫秒");
php
<?php
$start_time=microtime(true);
for($i=0; $i<10000000; $i++)
{
}
$end_time=microtime(true);
print "頁面執(zhí)行時間: ".round(($end_time-$start_time)*1000,1)." 毫秒";
?>
asp
<%
dim i
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "頁面執(zhí)行時間:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
執(zhí)行結(jié)果
為了得到更合理的數(shù)據(jù),采用各執(zhí)行5次(第一次執(zhí)行除外),然后取平均值。如下為測試結(jié)果:
語言 | 執(zhí)行時間 | 平均時間 | ||||
asp.net | 31ms | 15ms | 31ms | 15ms | 15ms | 21ms |
php | 1470ms | 1473ms | 1476ms | 1467ms | 1490ms | 1475ms |
asp | 812ms | 828ms | 812ms | 812ms | 828ms | 818ms |
從以上測試結(jié)果看出,asp.net的執(zhí)行時間比php快了70倍,比asp快了39倍。這個測試結(jié)果是我一直沒有想到的。
系統(tǒng)資源消耗情況
下面是執(zhí)行各程序時的系統(tǒng)資源消耗情況,主要是看cpu和內(nèi)存瞬間值。
asp.net
asp.net執(zhí)行程序時cpu峰值升到10%,使用內(nèi)存顯示是1.01GB(注意,測試時筆記本并沒有關(guān)閉其他所有運(yùn)行著的程序,所以這個內(nèi)存并不是此程序執(zhí)行單獨消耗的數(shù)值)。
php
php執(zhí)行程序時cpu峰值升到75%,使用內(nèi)存顯示是1.03GB。
asp
asp執(zhí)行程序時cpu峰值升到58%,使用內(nèi)存顯示是1.06GB。
總結(jié):在系統(tǒng)資源消耗方面,asp.net的優(yōu)勢再次凸顯出來了,它對cpu的消耗比php和asp少很多,php對cpu的消耗比asp多一點,但差別不大;而對內(nèi)存的消耗,三者差別并不大。
測試后感
現(xiàn)在的win主機(jī)空間,幾乎都是“全能型”的了,同時支持多種語言,主要是asp.net、php和asp三種語言。其實,就是IIS web服務(wù)器配上PHP運(yùn)行環(huán)境,就成了“全能型”虛擬主機(jī)了。
對于使用這類空間的朋友,本測試結(jié)果告訴你,最好不要用它來運(yùn)行php程序搭建的網(wǎng)站,譬如你用的是wordpress、dedecms等php構(gòu)架的程序。對于博客站長來說,本人認(rèn)為,如果你選用這類空間搭建博客,那么你就棄用wordpress吧,用zblog來搭建更合適,因為在這類空間里zblog比wordpress在速度和承載力上更勝一籌。