使用過程和函數(shù)對(duì)于代碼的組織和維護(hù)有著很大的好處,特別是頁面中部分代碼需要多次使用的時(shí)候。不過此時(shí)為了完成相同的處理任務(wù)要多出一次函數(shù)(或過程)的調(diào)用,這是它的缺點(diǎn)。從理論上看,函數(shù)塊內(nèi)的變量具有更好的效率。下面我們來看看這兩個(gè)問題的測(cè)試結(jié)果。
8.1 將Response.Write語句移入子過程
在這個(gè)測(cè)試中,我們只把Response.Write語句放到了子過程里面。 ... CALL writeTable()
SUB writeTable() Response.Write("< html >" & _ "< head >" & _ ... "< tr >< td >< b >EMail:< /b >< /td >< td >" & EMail & "< /td >< /tr >" & _ "< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _ "< /table >" & _ "< /body >" & _ "< /html >") END SUB
/app2/function1.asp片斷
基準(zhǔn) = 5.57 毫秒/頁 響應(yīng)時(shí)間 = 6.02 毫秒/頁 差額 = +0.45 毫秒 (增加8.1%)
和預(yù)期的一樣,子過程調(diào)用增加了額外的頁面處理負(fù)擔(dān)。
8.2 將所有腳本移入子過程
在這個(gè)測(cè)試中,Response.Write和所有的變量聲明都移到了子過程里面。 < % OPTION EXPLICIT CALL writeTable()
SUB writeTable() Dim FirstName ... Dim BirthDate FirstName = "John" ... BirthDate = "1/1/1950" Response.Write("< html >" & _ "< head >" & _ " < title >Response Test< /title >" & _ "< /head >" & _ "< body >" & _ "< h1 >Response Test< /h1 >" & _ "< table >" & _ "< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >" & _ ... "< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _ "< /table >" & _ "< /body >" & _ "< /html >") END SUB
/app2/function2.asp片斷
基準(zhǔn) = 5.57 毫秒/頁 響應(yīng)時(shí)間 = 5.22 毫秒/頁 差額 = -0.35 毫秒 (減少6.3%)
雖然仍舊有著附加的函數(shù)調(diào)用,把變量聲明放到函數(shù)內(nèi)部居然使性能增加到超過基準(zhǔn),這是一個(gè)值得關(guān)注的結(jié)果!我們得到了如下規(guī)則:
如果頁面中部分代碼要使用一次以上,用函數(shù)封裝它們。 如果合適的話,把變量聲明也移到函數(shù)里面。 (出處:熱點(diǎn)網(wǎng)絡(luò))
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!