提升ASP網站的執行速度

寫ASP程序已經有6年了,也下載了不少ASP源碼,看看別人怎麼寫,到現在也不敢說自己是個ASP的代碼能手,我認爲寫一個程序,只要邏輯思維清晰,很簡單的,但要寫好一個程序就不簡單了.

這篇文章就想說一個事情.如何提升ASP代碼的執行速度.希望對那些做網站的朋友有所幫助,寫代碼的人一定要養成好的習慣.

第一點:可能基本上會寫ASP代碼的人都知道,打開記錄集對象了,要關閉及連接(Connection)對象:如:rs.close,conn.close,set rs=nothing,set conn.close

第二點:寫ASP代碼的離不開數據庫,很多人在取數據庫是都用select * from....,很多下載的源代碼也是這樣寫,其實這些看似不起眼的地方,卻大大降低ASP執行速度。那麼我告訴你有多少字段就取多少字段,當然如果你要用全部字段,用*是沒多大區別,你怕麻煩呢,還是關心速度呢,就由你決定了.

第三點:能用存儲過程的地方儘量用,ACCESS我不太清楚能否用存儲過程,但我在操作MSSQL或ORACLE數據庫時,基本上都用存儲過程,除非遇到複雜的查詢,這樣有兩個好處,因爲存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,這樣就提高了你的ASP程序運行的速度,不需通過SQL操作一次,編譯一次,第二個好處就是寫個通用的存儲過程,這樣可以減少代碼量.從數據庫角度上講存儲過程的好處這裏就不再細說了

第四點:請使用遊標操作數據庫,如果你只是對一個表進行讀取操作,那麼請使用forward-only,read-only遊標,因爲這種遊標讀取數據庫是最爲快速的,尤其是你的讀取數據量很大的情況下。

第五點:這個可能很多人不知道,下載的源代碼也我也從來沒看到過.但是性能卻能幫你提升5倍的方法.很多朋友在用ASP取數據庫記錄時,喜歡這麼寫rs("username"),rs("addr"),知道速度能快點的朋友可能會這麼寫rs(1),rs(2),但我告訴你這兩種都不是最快的方法,最快應該這麼寫
Dim objrs
Set objrs=rs(0)
response.wirte objrs 
在取100條記錄以上時就會感覺到此種方法的超級優勢,不信你試試,當然別忘記set objrs=nothing

第六點:儘量少用Session對象和Application對象
這2個傢伙確實給我們程序帶來不少好處,但是又愛有恨,爲什麼用多了,服務器被他們拖死,所以在這裏不能說不要用,只能說合理用

第七點:用了對象要記得關閉,就象剛纔第五點最後的一句話那樣

第八點:要合理的使用Include文件
我看過很多下載下來的源代碼,把所有的函數都寫到一個文件裏,然後用到的地方Include進來,這樣做雖然帶來了很大的方便,但是在性能上又打了折扣,原因總有吧,是的,你在其他頁面包含這個文件的時候,服務器端是要進行預編譯的,很可能在一個包含文件裏面有上百個函數,而你只是想要使用其中的一個函數,這樣就得不償失了。所以,儘可能的分割你的包含文件成爲多個小的包含文件。

第九點:能使用ASP本身提供的函數,就儘量使用

第十點:動態數組要少用,這東西也是吃內存的大胃王

第十一點:提前聲明變量,沒有好習慣的程序員寫ASP程序,用什麼寫什麼變量,從沒看到dim字眼,我要告訴你,提前聲明變量會加快程序的解釋執行時間,不聲明變量,不但程序難讀,整個程序在服務器的執行效率也會打折扣。

第十二點:看到很多下載的代碼,喜歡把所有的數據庫的增刪改都寫在一段代碼裏,這樣做的結果會使你的運行速度減慢很多,試想如果1000個人同時打開這個處理頁面,那是多麼恐怖的事情,我建議你把處理的一件邏輯事件獨立寫成一個頁面,這樣做可以降低服務器端解釋執行的負擔,而且閱讀起來也快捷。

第十三點:我們一起討論,是把ASP嵌套在HTML裏速度快呢?還是用response.write()將整個網頁打印出來快呢?

okey!可能也有朋友會有疑義或有更好提升性能的方法,一定要告訴我,可別到論壇上再去討論什麼語言好,什麼語言有錢途了,任何一門技術都有學問,成精了都厲害!

我還是那句寫邏輯程序簡單,但寫好程序不容易,人長着腦袋要多總結,學到本事總是自己的!

要轉載的朋友,千萬別忘了注個出處,寫這麼一篇文章,真不容易,小時寫作文也沒這麼認真過'@'

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章