技巧 7: 將代碼封裝在 COM 物件中
如果您有許多 VBScript 或 JScript,您可以經常將代碼移到編譯的 COM 物件中,從而可改善效能。編譯的代碼通常比解釋的代碼運行得更快。編譯的 COM 物件可以通過“早綁定”訪問其它 COM 物件,與指令碼使用的“晚綁定”相比,“早綁定”是調用 COM 物件的更有效方法。將代碼封裝在 COM 物件中還有一些優點(除效能之外):
COM 物件有利於將表示邏輯與商務邏輯分開。
COM 物件可以保證代碼重複使用。
許多開發人員發現以 VB、C++ 或 Visual J++ 編寫的代碼比 ASP 更容易調試。
COM 物件也有缺點,包括初始開發時間和需要不同的程式設計技巧。注意封裝少量的 ASP 可能引起效能下降,而不會得到效能改進。這種情況通常在少量的 ASP 代碼被封裝進 COM 物件時發生。在這種情況下,建立和調用 COM 物件的系統開銷超過了編譯的代碼的優點。應反覆地實驗,以確定什麼樣的 ASP 指令碼和 COM 物件代碼的組合產生最好的效能。注意,與 Microsoft Windows NT® 4.0/IIS 4.0 相比,Windows 2000/IIS 5.0 中在指令碼和 ADO 效能方面有了很大的改進。因此,隨著 IIS 5.0 的推出,編譯代碼比 ASP 代碼的效能優勢有所降低。如果您部署 COM 組件,以負荷對它們進行測試特別重要。事實上,理所當然應對所有的 ASP 應用程式進行負荷測試。
技巧 8:遲一點獲得資源,早一點釋放資源
這裡是一個小技巧供您參考。一般來說,最好遲一點獲得資源,早一點釋放資源。這適用於 COM 物件以及檔案控制代碼和其它資源。這種最佳化方法主要用於 ADO 連線和記錄集。當您使用完記錄集,比方說在顯示一個表及其資料之後,應立即釋放它,而不是等到頁面結束時再釋放。將 VBScript 變數設定為Nothing 是最好的做法。不要讓記錄集超出範圍之外。而且,要釋放任何相關的 Command 或 Connection 對象(在將記錄集或串連設定為 = Nothing 之前,不要忘記調用Close())。這會縮短資料庫必須為您準備資源的時間,並儘快釋放資料庫到串連池的串連。
技巧 9:進程外執行過程以效能換取可靠性
ASP 和 MTS/COM+ 兩者都有配置選項,可使您兼顧可靠性和效能。當建立和部署應用程式時,應知道如何兼顧兩者的效能。ASP 選項可以配置 ASP 應用程式,以便以三種方法之一運行。在 IIS 5.0 中,引入了“隔離級”這一術語以說明這些選項。這三個隔離級分別是低級、中級和進階:
低級隔離:這在 IIS 的所有版本中都得到支援,且是最快的。它在 Inetinfo.exe 中運行 ASP,Inetinfo.exe 是主要 IIS 進程。如果 ASP 應用程式崩潰,IIS 也會崩潰。(要在 IIS 4.0 下重新啟動 IIS,Web 網站管理員應使用諸如 InetMon 之類的工具監視網站,如果伺服器發生故障,應啟用批次檔以重新啟動伺服器。IIS 5.0 引入了可靠的重新啟動,該方法可使發生故障的伺服器自動重新啟動。)