本文將向大家介紹四則最佳化ASP應用程式的技巧。
1.將經常使用的資料緩衝在 Application 或 Session 對象中
ASP的Application和Session對象為將資料暫存在記憶體中提供了方便的容器。你可以將資料指派到 Application和Session對象中,這些資料在HTTP調用之前保留在記憶體中。Session資料是按每個使用者分別儲存的,而Application資料則在所有使用者之間共用。
什麼時候將資料裝載到 Application 或 Session 中呢?通常,資料是在啟動 Application 或 Session 時裝載。要在Application或Session啟動過程中裝載資料,應將適當的代碼分別添加到Application_OnStart()或Session_OnStart()中。這些函數應該在 Global.asa 中,如果沒有,我們可手工添加進這些函數。還可以在第一次需要時裝載該資料。為此,在 ASP 頁中添加一些代碼(或編寫一個可重複使用的指令碼函數),以檢查資料是否存在,如果不存在,就裝載資料。這是一個傳統提高效能的技術,稱為“惰性計算”,即在你知道需要某一個值以前不計算該值。程式舉例如下:
<%
Function GetEmploymentStatusList
Dim d
d = Application(?EmploymentStatusList?)
If d = ?? Then
' FetchEmploymentStatusList function (not shown)
' fetches data from DB, returns an Array
d = FetchEmploymentStatusList()
Application(?EmploymentStatusList?) = d
End If
GetEmploymentStatusList = d
End Function
%>
我們可以為所需要的每個資料區塊編寫類似的函數。
2.將代碼封裝在 COM 物件中
如果你的Web應用程式中有許多 VBScript 或JScript代碼,你可以經常將代碼移到編譯的 COM 物件中,從而可改善效能。將代碼封裝在 COM 物件中還有一些除提高效能之外的其他優點:
(1)COM 物件有利於將表示邏輯與商務邏輯分開;
(2)COM 物件可以保證代碼重複使用;
(3)用VB、VC++ 或 Visual J++ 編寫的代碼比 ASP 更容易調試。
COM對象也有缺點,包括初始化時間長和需要不同的程式設計技巧。值得注意的是,在少量ASP代碼被封裝進 COM 物件時,可能不會使效能有所改進,反而會引起效能下降。這種情況通常是建立和調用 COM 物件的系統開銷超過了編譯代碼的系統開銷。因此,我們需要反覆地實驗,以確定什麼樣的 ASP 指令碼和 COM 物件代碼的組合可以產生最好的效能。