改進 ASP 應用程式中的字串處理效能
James Musson
Developer Services, Microsoft UK
2003年3月
適用於:
Microsoft® Active Server Pages®
Microsoft Visual Basic®
摘要:大多數 Active Server Pages (ASP) 應用程式都要通過字串串連來建立呈現給使用者的 HTML 格式的資料。本文對幾種建立此 HTML 資料流的方法進行了比較,在特定情況下,某些方法在效能方面要優於其他方法。本文假定您已經具備一定的 ASP 和 Visual Basic 編程方面的知識。
目錄
簡介
ASP 設計
字串串連
快捷的解決方案
StringBuilder
內建方法
測試
結果
小結
簡介
編寫 ASP 頁面時,開發人員實際上是建立一個格式化的文字資料流,通過 ASP 提供的 Response 對象寫入 網頁用戶端。建立此文字資料流的方法有多種,而您選擇的方法將對 Web 應用程式的效能和可縮放性產生很大影響。很多次,在我協助客戶最佳化其 Web 應用程式的效能時,發現其中一個比較有效方法是更改 HTML 流的建立方式。本文將介紹幾種常用技術,並測試它們對一個簡單的 ASP 頁面的效能所產生的影響。
ASP 設計
許多 ASP 開發人員都遵循良好的軟體工程原則,儘可能地將其代碼模組化。這種設計通常使用一些包含檔案,這些檔案中包含對頁面的特定不連續部分進行格式化產生的函數。這些函數的字串輸出(通常是 HTML 表格代碼)可以通過各種組合建立一個完整的頁面。某些開發人員對此方法進行了改進,將這些 HTML 函數移到 Visual Basic COM 組件中,希望充分利用已編譯的代碼提供的額外效能。
儘管這種設計方法很不錯,但建立組成這些不連續 HTML 程式碼組件的字串所使用的方法將對 Web 網站的效能和可縮放性產生很大的影響,無論實際的操作是在 ASP 包含檔案中執行還是在 Visual Basic COM 組件中執行。
字串串連
請看以下 WriteHTML 函數的代碼片斷。名為 Data 的參數只是一個字串數組,其中包含一些要格式化為表格結構的資料(例如,從資料庫返回的資料)。
Function WriteHTML( Data )
Dim nRep
For nRep = 0 to 99
sHTML = sHTML & vbcrlf _
& "<TR><TD>" & (nRep + 1) & "</TD><TD>" _
& Data( 0, nRep ) & "</TD><TD>" _