今天,我的任務是改善傳統ASP頁面的性能。在ASP.NET中重寫代碼現在不是一種選擇,所以我接受了挑戰,擠出每一盎司的性能,我可以離開頁面。經典asp的性能提示?
該頁面由基本的「SELECT bla bla FROM bla」組成一對記錄集。 while循環遍歷這些記錄集和轉儲<tr> <td>字符串。在while循環中有一堆條件和什麼。有3個子程序被調用,它們使用全局變量(不是作爲參數傳遞的本地變量)。
所以沒有什麼令人震驚或什麼。在我開始優化之前,循環需要大約15秒才能完成。在大約6秒的15秒內被sql查詢佔用。
改變了一些東西后,我設法得到它到7秒。
,我已經改變了周圍的事情是:
而不是做SELECT *的,我只選擇我需要的列。查詢平均下降到4秒。這是一個非常沉重的查詢視圖內的意見。
我刪除了循環內的所有上下文切換。所以我改變了如Response.Write(bla)<%= bla%>。
3個子程序被定義爲函數,但它們被用作子(沒有結果)。所以我把這些功能改成了subs。這有幫助嗎?
在做出更改後,我發現大部分時間都被其中一個子程序佔用。我沒有時間今天足以改變子程序,但它包含的東西,如:
- 日期函數:DATEADD,DATEDIFF
- 陣列功能:UBOUND(ARR)和指數參考:ARR(I)
- 字符串函數:左,中,右,下,更換
隨着每一個網頁呼叫,該子程序是圍繞1600次運行。
有沒有人有經驗優化經典的ASP頁面?你有什麼好的優化技巧?我正在尋找的是改進do ...循環語句中的代碼。
我是一位經驗豐富的ASP.NET開發人員,對ASP.NET的性能改進有相當的瞭解。經典的ASP使用不同的「引擎」,所以我想知道是否有人對改善傳統ASP的性能有任何見解。
謝謝!
中號
PS:是的,我知道,傳統的ASP使用VBScript中
這是一個規劃應用程序和建立它的人enthousiastically創建一個大的while循環,顯示整個月的大量記錄(30列和大約20行)的規劃。 – mghaoui 2009-02-26 19:23:03