ASP優(yōu)化:幾招提高ASP性能的最佳選擇(2)_ASP教程
推薦:馬克斯電影站生成Rss Feed的代碼前段時(shí)間為了給本人的電影站增加Rss訂閱功能,動(dòng)手寫了個(gè)動(dòng)態(tài)生成Rss Feed的ASP代碼,沒法上傳附件,就直接貼代碼吧,反正也不長(zhǎng),用馬克斯做電影站的朋友直接拿去用吧,其它類型的站點(diǎn)修改一下
使用包裝函數(shù)
當(dāng)我們?cè)噲D使用Response.Write 語(yǔ)句這種方法時(shí),最令人灰心的發(fā)現(xiàn)可能就是Response.Write 函數(shù)不能在每行的結(jié)尾處放置一個(gè)CRLF 。因此,當(dāng)你從瀏覽器中閱讀源代碼時(shí),本來布置得非常好的HTML,現(xiàn)在成了沒有結(jié)束的一行。我想,你的下一個(gè)發(fā)現(xiàn)可能會(huì)更令你恐怖:在Response 對(duì)象中沒有其姊妹函數(shù)Writeln 。所以,一個(gè)很明顯的反應(yīng)就是為Response.Write 函數(shù)創(chuàng)建一個(gè)包裝函數(shù),以便給每一行都附加一個(gè)CRLF 。
| … writeCR("<tr><td><b>First Name:</b></td><td>" & FirstName & "</td></tr>") … SUB writeCR(str) Response.Write(str & vbCRLF) END SUB /app1/response4.asp的片段 以前的最佳(反應(yīng)速度)= 8.08 msec/page 反應(yīng)時(shí)間= 10.11 msec/page 差 = 2.03 msec (增加 25.1%) |
當(dāng)然,由于這種方法有效地使函數(shù)調(diào)用次數(shù)加倍,其對(duì)性能的影響也很明顯,因此要不惜一切代價(jià)避免。具有諷刺意味的是CRLF也向反應(yīng)流中為每行增加了2個(gè)字節(jié),而這是瀏覽器不需要呈現(xiàn)到頁(yè)面上的。格式化良好的HTML所做的一切就是讓你的競(jìng)爭(zhēng)者更容易閱讀你的HTML源代碼并理解你的設(shè)計(jì)。
將連續(xù)的Response.Write 連接到一個(gè)單獨(dú)語(yǔ)句中
不考慮我們前面用包裝函數(shù)進(jìn)行的測(cè)試,下一個(gè)合乎邏輯的步驟就是從單獨(dú)的Response.Write 語(yǔ)句中提取出所有的字符串,將它們連接到一個(gè)單獨(dú)語(yǔ)句中,這樣就減少了函數(shù)調(diào)用的次數(shù),極大地提高了頁(yè)面的性能。
| … 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>") |
/app1/response3.asp的片段
以前的最佳(反應(yīng)速度)= 8.08 msec/page
反應(yīng)時(shí)間 = 7.05 msec/page
差 = -1.03 msec (減少12.7%)
目前,這是最優(yōu)化的配置。
將連續(xù)的Response.Write 連接到一個(gè)單獨(dú)語(yǔ)句中,在每行結(jié)尾處增加一個(gè)CRLF
考慮到那些要求他們的源代碼從瀏覽器中看要很純粹的人,我用vbCRLF 常量在前面測(cè)試中每行的結(jié)尾處插入了一些回車,然后重新運(yùn)行。
| … Response.Write("<html>" & vbCRLF & _ "<head>" & vbCRLF & _ " <title>Response Test</title>" & vbCRLF & _ "</head>" & vbCRLF & _ … |
/app1/response5.asp的片段
前面的最佳(反應(yīng)速度)= 7.05 msec/page
反應(yīng)時(shí)間= 7.63 msec/page
差 = 0.58 msec (增加 8.5%)
運(yùn)行的結(jié)果在性能上有一點(diǎn)降低,這也許是由于額外的串聯(lián)和增加的字符量。
回顧和觀測(cè)
從前面有關(guān)ASP輸出的測(cè)試中可以得出一些規(guī)則:
* 避免內(nèi)聯(lián)ASP的過多使用。
* 總是將連續(xù)Response.Write 語(yǔ)句連接進(jìn)一個(gè)單獨(dú)語(yǔ)句內(nèi)。
* 永遠(yuǎn)不要在Response.Write 周圍使用包裝函數(shù)來附加CRLF。
* 如果必須格式化HTML輸出,直接在Response.Write 語(yǔ)句內(nèi)附加CRLF。
是否應(yīng)該開啟緩沖器?
通過腳本程序啟動(dòng)緩沖器
在ASP腳本的頂部包含Response.Buffer=True ,IIS就會(huì)將頁(yè)面的內(nèi)容緩存。
| <% OPTION EXPLICIT Response.Buffer = true Dim FirstName … |
/app1/buffer__1.asp的片段
以前的最佳(反應(yīng)時(shí)間)= 7.05 msec/page
反應(yīng)時(shí)間 = 6.08 msec/page
差= -0.97 msec (降低13.7%)
性能得到了極大提高。但是等等,還能有更好的。
通過服務(wù)器配置啟動(dòng)緩沖器
雖然在IIS 5.0中緩沖器是被默認(rèn)啟動(dòng)的,但是在IIS 4.0中還必須手動(dòng)來啟動(dòng)它。這時(shí)要找到站點(diǎn)的Properties 對(duì)話框,在那里,從Home Directory 標(biāo)簽中選擇配置按鈕。然后在"App options"下選擇"enable buffering" 。對(duì)于這個(gè)測(cè)試,Response.Buffer 語(yǔ)句從腳本中被移走了。
以前的最佳= 7.05 msec/page
反應(yīng)時(shí)間 = 5.57 msec/page
差= -1.48 msec (降低 21.0%)
目前,這是我們所得到的最快反應(yīng)了,比我們以前最好情況下的反應(yīng)時(shí)間還要降低21%。從現(xiàn)在開始,我們以后的測(cè)試都要把這個(gè)反應(yīng)時(shí)間作為基準(zhǔn)值。
分享:ASP 編程中20個(gè)非常有用的例子(一)1、如何用Asp判斷你的網(wǎng)站的虛擬物理路徑
答:使用Mappath方法:< %= Server.MapPath("")% >
2、我如何知道使用者所用的瀏覽器?
答:使用the Request object方法:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無組件分頁(yè)實(shí)現(xiàn)思路及代碼
ASP教程Rss訂閱編程教程搜索
ASP教程推薦
- ASP應(yīng)用進(jìn)階 ASP Error對(duì)象的相關(guān)知識(shí)
- ASP優(yōu)化 用數(shù)據(jù)綁定實(shí)現(xiàn)高效率動(dòng)態(tài)網(wǎng)頁(yè)
- 淺談ASP編程的思路與糾錯(cuò)
- 淺析asp程序創(chuàng)建access數(shù)據(jù)庫(kù)
- ASP中set與dim的區(qū)別(自己的理解)
- ASP讀寫注冊(cè)表
- ASP編程--新手上路篇:ASP技術(shù)簡(jiǎn)介
- 瞄準(zhǔn)Apache IIS7向開源張開雙臂
- 用紅色顯示ASP查詢數(shù)據(jù)時(shí)得到的記錄關(guān)鍵詞
- ASP實(shí)現(xiàn)長(zhǎng)文章手動(dòng)分頁(yè)的代碼
- 相關(guān)鏈接:
- 教程說明:
ASP教程-ASP優(yōu)化:幾招提高ASP性能的最佳選擇(2)
。