效能 作者:青苹果工作室編譯
結論
本文第一部分的重要之處在於許多小事情的累積。為了強調這個問題,我設定了最後一個測試,在其中進行了我們以前曾經測試過的看來無所謂但實際上有壞影響的所有操作。我包含了許多Response.Write 聲明、關閉了緩衝器、設定了預設語言、去掉了Option Explicit 引用並初始化了錯誤控制代碼。
< %@ LANGUAGE=VBSCRIPT % >
< %
On Error Resume Next
FirstName = "John"
…
BirthDate = "1/1/1950"
Response.Write("< html >")
Response.Write("< head >")
Response.Write(" < title >Response Test< /title >")
Response.Write("< /head >")
Response.Write("< body >")
Response.Write("< h1 >Response Test< /h1 >")
Response.Write("< table >")
Response.Write("< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >")
…
Response.Write("< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >")
Response.Write("< /table >")
Response.Write("< /body >")
Response.Write("< /html >")
% >
/app2/final_1.asp片段
基準值 = 5.57 msec/page
反應時間 = 8.85 msec/page
差 = +3.28 msec (58.9% 增加)
聽起來可能很明顯,但是理解更重要,那就是我們放置在頁面上的代碼會對效能有影響。頁面上的小變化有時會大大地增加反應時間。
規則概括
* 避免內聯ASP的過多使用。
* 總是將連續Response.Write 語句串連進一個單獨語句內。
* 永遠不要在Response.Write 周圍使用封裝函數以附加CRLF。
* 如果必須格式化HTML輸出,直接在Response.Write 語句內附加CRLF。
* 總是通過伺服器設定開啟緩衝器。
* 只要使用適度,ASP注釋對效能的影響很小或根本沒有影響。
* 設定伺服器的預設語言配置以與網站上使用的語言相匹配。
* 除非你使用非預設語言,不要設定語言聲明。
* 在VBScript中總是使用Option explicit 。
* 在不需要的情況下,總是在頁面或應用程式的水平上關閉Session狀態。
* 只有當代碼在頁面之間共用時才使用Include 檔案。
* 在一個頁面上,如果代碼要使用一次以上,就將代碼封入函數區。
* 適當時候,將變數聲明移到函數範圍內。
* 只有會發生超出測試或控制能力之外的情況時才使用錯誤控制代碼。
* 只有當兩個或更多操作被作為一個單元執行時,才使用上下文處理。
現在回顧一下,有許多問題可以作為普遍性的方針:
* 避免冗餘--不要設定那些預設狀態下已經設定的屬性。
* 限制函數調用的次數。
* 縮小代碼的範圍。
在本文的第二部分,我們將探索有關ADO和COM對象一些深入的問題。