asp程序定義變量比不定義變量速度快一倍
更新時(shí)間:2012年07月31日 16:51:15 作者:
一直以來(lái)對(duì)asp的程序編寫(xiě)都比較隨意,也沒(méi)有太多考慮運(yùn)行效率的問(wèn)題。asp對(duì)語(yǔ)法是相當(dāng)寬容的,容錯(cuò)性很高,它不需要定義變量便可直接使用,變量名不需要區(qū)分大小寫(xiě)字母,asp的文件名也同樣不像jsp那樣對(duì)字母大小寫(xiě)是敏感的
因此,在我接觸那么多種語(yǔ)言當(dāng)中,asp是最不嚴(yán)格的一種,是對(duì)程序員要求最低的一種。
昨天測(cè)試了asp.net、php和asp的運(yùn)行速度比較,今天又來(lái)沖動(dòng),想看看定義變量與不定義變量對(duì)asp運(yùn)行效率的影響有多大,結(jié)果令人驚訝,asp程序定義變量比不定義變量速度快一倍!
測(cè)試程序還是昨天那個(gè),運(yùn)行一千萬(wàn)次for循環(huán),獲得執(zhí)行時(shí)間。
1、程序沒(méi)有定義變量(dim i)
<%
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "頁(yè)面執(zhí)行時(shí)間:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
2、程序定義了變量(dim i)
<%
dim i
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "頁(yè)面執(zhí)行時(shí)間:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
程序各執(zhí)行5次(第一次執(zhí)行除外),然后取平均值。如下為測(cè)試結(jié)果:
從以上測(cè)試結(jié)果看出,定義變量比不定義變量,asp的執(zhí)行速度快了一倍。
至于為什么會(huì)這樣,本人也沒(méi)有更進(jìn)一步深入研究了。不過(guò)通過(guò)這個(gè)實(shí)例,讓我確實(shí)感受到規(guī)范編程才能讓程序運(yùn)行得更高效。對(duì)于不規(guī)范的編程,語(yǔ)言本身雖然具有容錯(cuò)性,但其分析過(guò)程是需要時(shí)間為代價(jià)的。當(dāng)然了,對(duì)于一個(gè)簡(jiǎn)單的程序來(lái)說(shuō),也許規(guī)范與不規(guī)范它們所耗時(shí)間的差別是微乎其微的,但是如果你開(kāi)發(fā)的系統(tǒng)比較大,頁(yè)面多,函數(shù)調(diào)用也多,那么規(guī)范與不規(guī)范它們所耗時(shí)間的差別就會(huì)凸顯出來(lái)了,少則1、2倍,多則幾十倍都不足奇。
昨天測(cè)試了asp.net、php和asp的運(yùn)行速度比較,今天又來(lái)沖動(dòng),想看看定義變量與不定義變量對(duì)asp運(yùn)行效率的影響有多大,結(jié)果令人驚訝,asp程序定義變量比不定義變量速度快一倍!
測(cè)試程序還是昨天那個(gè),運(yùn)行一千萬(wàn)次for循環(huán),獲得執(zhí)行時(shí)間。
1、程序沒(méi)有定義變量(dim i)
復(fù)制代碼 代碼如下:
<%
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "頁(yè)面執(zhí)行時(shí)間:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
2、程序定義了變量(dim i)
復(fù)制代碼 代碼如下:
<%
dim i
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "頁(yè)面執(zhí)行時(shí)間:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
程序各執(zhí)行5次(第一次執(zhí)行除外),然后取平均值。如下為測(cè)試結(jié)果:
定義變量 | 執(zhí)行時(shí)間 | 平均時(shí)間 | ||||
否 | 1890ms | 1859ms | 1844ms | 1875ms | 1859ms | 1865ms |
是 | 890ms | 890ms | 984ms | 875ms | 890ms | 905ms |
從以上測(cè)試結(jié)果看出,定義變量比不定義變量,asp的執(zhí)行速度快了一倍。
至于為什么會(huì)這樣,本人也沒(méi)有更進(jìn)一步深入研究了。不過(guò)通過(guò)這個(gè)實(shí)例,讓我確實(shí)感受到規(guī)范編程才能讓程序運(yùn)行得更高效。對(duì)于不規(guī)范的編程,語(yǔ)言本身雖然具有容錯(cuò)性,但其分析過(guò)程是需要時(shí)間為代價(jià)的。當(dāng)然了,對(duì)于一個(gè)簡(jiǎn)單的程序來(lái)說(shuō),也許規(guī)范與不規(guī)范它們所耗時(shí)間的差別是微乎其微的,但是如果你開(kāi)發(fā)的系統(tǒng)比較大,頁(yè)面多,函數(shù)調(diào)用也多,那么規(guī)范與不規(guī)范它們所耗時(shí)間的差別就會(huì)凸顯出來(lái)了,少則1、2倍,多則幾十倍都不足奇。
相關(guān)文章
asp生成靜態(tài)HTML(動(dòng)態(tài)讀取)
這樣的代碼多用于我們沒(méi)有實(shí)現(xiàn)設(shè)計(jì)生成靜態(tài)的功能,但又想臨時(shí)將一些動(dòng)態(tài)頁(yè)面生成靜態(tài)的,直接獲取動(dòng)態(tài)內(nèi)容并保存為靜態(tài)的2013-08-08利用ASPUPLOAD,ASPJPEG實(shí)現(xiàn)圖片上傳自動(dòng)生成縮略圖及加上水印
利用ASPUPLOAD,ASPJPEG實(shí)現(xiàn)圖片上傳自動(dòng)生成縮略圖及加上水印...2007-02-02.Net 自定義轉(zhuǎn)換器JsonConverter的使用詳解
這篇文章主要介紹了.Net 自定義轉(zhuǎn)換器JsonConverter的使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04asp之自動(dòng)閉合HTML/ubb標(biāo)簽函數(shù)附簡(jiǎn)單注釋
這樣的功能就是實(shí)現(xiàn)一般html,ubb標(biāo)簽的閉合,以前在pjblog中見(jiàn)過(guò),一直沒(méi)用,這個(gè)函數(shù)不錯(cuò),建議可以參考下pjblog中的函數(shù)。2009-01-01asp HTTP_X_FORWARDED_FOR和REMOTE_ADDR
HTTP_X_FORWARDED_FOR與REMOTE_ADDR的區(qū)別.2009-04-04