摘 要:通過對ASP.NET Web應(yīng)用開發(fā)在實際應(yīng)用中性能重要性的闡述,作者結(jié)合自身多年授課以及開發(fā)Web應(yīng)用程序的經(jīng)驗對ASP.NET企業(yè)應(yīng)用的性能優(yōu)化方法進行了介紹,并討論了如何使用更有效的方法來保證在安全條件下實現(xiàn)ASP.NET Web應(yīng)用性能的優(yōu)化。
關(guān)鍵詞:ASP.NET 性能 優(yōu)化 Web應(yīng)用
中圖分類號:TP393.09文獻標(biāo)識碼:A文章編號:1674-098X(2013)04(c)-0055-01
對于一個Web應(yīng)用,特別是企業(yè)Web應(yīng)用來說,程序的性能是非常重要的。一個Web應(yīng)用無論它的服務(wù)功能有多么完善,頁面設(shè)計多么美觀,如果它對客戶端的響應(yīng)非常緩慢,甚至出現(xiàn)頁面訪問超時的結(jié)果,用戶最終將會無法忍受,該應(yīng)用必然是失敗的。雖然,越來越多的應(yīng)用轉(zhuǎn)向Web服務(wù),這一趨勢使得網(wǎng)絡(luò)流量顯著提高,但這其中的關(guān)鍵是要求確保優(yōu)良的系統(tǒng)性能。由此可見,性能對于企業(yè)應(yīng)用來說是至關(guān)重要的,尤其對于大型的Web應(yīng)用程序來說,為了滿足數(shù)萬甚至幾十萬的用戶同時訪問的需求,良好的網(wǎng)站性能顯得尤為重要。
ASP.NET作為微軟新一代Web應(yīng)用解決方案,除了可以使構(gòu)造系統(tǒng)變得更加容易以外,通過整合其他動態(tài)技術(shù)優(yōu)勢的基礎(chǔ)上形成了自己獨有的性能優(yōu)化方案。但是,為了能夠開發(fā)出更加專業(yè),性能更加良好,同時又能滿足用戶需求的ASP.NET Web應(yīng)用,還需在此基礎(chǔ)上,從服務(wù)器的角度、編碼的角度、網(wǎng)絡(luò)環(huán)境的角度綜合考慮,以提高網(wǎng)站的總體性能。
1 ASP.NET Web應(yīng)用性能衡量指標(biāo)
性能表示系統(tǒng)執(zhí)行任務(wù)的速度和效率。就Web應(yīng)用站點的性能而言,性能好的網(wǎng)站能夠讓用戶的訪問變得輕松舒服,從而能夠留住用戶群。Web應(yīng)用的關(guān)鍵是能夠在任何時間為任何地點的設(shè)備高效快速地提供自己的服務(wù)。提高Web應(yīng)用的性能,需要從不同的角度考慮,合理選擇相關(guān)技術(shù)。Web應(yīng)用性能的衡量指標(biāo)重點可歸納為以下幾點:(1)服務(wù)器的處理能力(2)狀態(tài)信息管理(3)響應(yīng)時間(4)Web前端因素其中,對于Web應(yīng)用開發(fā)來說,衡量性能最重要的指標(biāo)是優(yōu)化用戶響應(yīng)時間,因為響應(yīng)時間是用戶唯一能夠直接感覺到的性能衡量指標(biāo)。另外,狀態(tài)信息的管理優(yōu)化和Web前端因素的優(yōu)化也很重要,如在客戶端請求時,緩存數(shù)據(jù)量大、使用頻繁的信息能夠避免客戶端重復(fù)下載,減少時間和資源浪費。
2 提高ASP.NET Web應(yīng)用性能
2.1 優(yōu)化服務(wù)器
服務(wù)器是ASP.NET應(yīng)用程序文件的存儲位置,服務(wù)器文件的存取速度很大程度上影響著網(wǎng)頁及其內(nèi)容的呈現(xiàn)時間,可以使用更快速的磁盤和更好的網(wǎng)絡(luò)存取機制來改進網(wǎng)站訪問速度??梢赃x擇一些監(jiān)測軟件,用于監(jiān)測服務(wù)器和應(yīng)用程序的運行狀況,以便確定服務(wù)器的哪些方面需要進行調(diào)整,這樣可以知道服務(wù)器在各方面的性能是否達到了應(yīng)有的水平,以及應(yīng)用程序消耗了多少資源。另外,在服務(wù)器工作較長時間后對硬盤進行碎片整理;在服務(wù)器上安裝成熟的Web服務(wù)器加速軟件,都有助于在一定程度上提升服務(wù)器的性能。
2.2 狀態(tài)信息維護
在ASP.NET Web應(yīng)用中,可以使用ViewState對象、Application對象、Session對象、Session對象、Cookie對象、ASP.NET緩存機制等技術(shù)來實現(xiàn)狀態(tài)信息的維護和管理。為了能夠提高狀態(tài)信息的使用性能,盡可能緩存那些需要頻繁訪問的數(shù)據(jù),以及需要大量時間創(chuàng)建的數(shù)據(jù)。
2.3 減少服務(wù)器響應(yīng)時間
瀏覽器客戶端與服務(wù)器的頻繁交互,會給服務(wù)器產(chǎn)生較多的響應(yīng)處理,從而降低服務(wù)器性能,能夠在客戶端實現(xiàn)的功能盡量不與服務(wù)器連接,必須與服務(wù)器進行交互的處理可以適當(dāng)采用異步傳輸?shù)姆绞竭M行,這樣可以在很大程度上提高性能。
2.3.1 盡量減少服務(wù)器控件的使用
在ASP.NET Web應(yīng)用中,服務(wù)器端控件易于使用,能夠給應(yīng)用開發(fā)帶來極大的便利,但頻繁的回發(fā),需要額外的使用服務(wù)器資源,而且服務(wù)器控件并不是完成應(yīng)用的最佳選擇和唯一選擇。在大多情況下,服務(wù)器控件仍然可用其他方式來代替實現(xiàn)應(yīng)用功能。所以,ASP.NET Web頁面上服務(wù)器端的控件應(yīng)該保持在最低的數(shù)量上。
2.3.2 不依賴代碼中的異常
通常,在應(yīng)用程序編碼中,為了提高應(yīng)用交互性,在可能出現(xiàn)異常的時候會使用異常處理。在程序執(zhí)行期間發(fā)生錯誤時,異常處理是非常有用的方式,它將會改變程序的執(zhí)行流。在ASP.NET運行時的托管環(huán)境中,用try和catch設(shè)置異常處理代碼只對性能有可以忽略不計的影響,但程序拋出異常時卻有性能的損失。
2.3.3 使用Ajax技術(shù)
在傳統(tǒng)的Web交互方式中,當(dāng)用戶觸發(fā)一個請求到Web服務(wù)器時,服務(wù)器將處理后的響應(yīng)結(jié)果封裝成一個新的HTML頁面后再返回給用戶客戶端,在接收返回結(jié)果的這段時間里,客戶端都只能空閑等待,并且盡管是一次數(shù)據(jù)量很小的交互都要返回一個完整的HTML頁,從而浪費時間用于加載該HTML頁,用戶由于頁面的等待就會對Web站點失去信心。
2.3.4 不可忽視的前端因素
對于ASP.NET Web應(yīng)用的性能優(yōu)化,除了可以從Web應(yīng)用后端優(yōu)化考慮外,還需要考慮Web應(yīng)用前端的優(yōu)化。Web前端優(yōu)化包括Web前端頁面技術(shù)的使用,以及客戶端系統(tǒng)的配置。
(1)HTTP請求優(yōu)化。減少頁面的HTTP請求次數(shù)是首先要做的一步,這是改良初次訪問用戶等待時間的最重要的方法,如圖片地圖的使用。
在Web應(yīng)用站點導(dǎo)航中,可以使用圖片地圖(Image Map)減少HTTP請求,它允許在一個圖片上關(guān)聯(lián)多個URL,獲取圖片地圖的時間比獲取為每個超鏈接使用分離圖片的導(dǎo)航時間快很多。
(2)壓縮技術(shù)。除了減少和限制不必要的HTTP請求來減少響應(yīng)時間外,還可以通過減小HTTP響應(yīng)的大小,在傳輸前對文件進行壓縮,進一步減少響應(yīng)時間。
(3)客戶端優(yōu)化。最后,頁面不能快速或正確提交,原因或許在于客戶端,沒有協(xié)調(diào)一致的客戶端操作相配合,壓縮、分發(fā)、緩沖及其它一些方案終究不能發(fā)揮作用。如終端系統(tǒng)配置脆弱,應(yīng)用程序運行過多,磁盤存取速度太慢,或瀏覽器速度低下等原因。
3 結(jié)語
ASP.NET Web應(yīng)用的性能優(yōu)化對于用戶來說是至關(guān)重要的,它將決定Web應(yīng)用的訪問用戶對于站點信任,并是否能夠留住用戶。在開發(fā)ASP.NET Web應(yīng)用時,必須注意影響Web應(yīng)用性能的相關(guān)因素,養(yǎng)成良好的習(xí)慣。
本文僅針對ASP.NET Web應(yīng)用中影響性能若干因素作了簡要分析,并提出了一些優(yōu)化性能的相關(guān)技術(shù)和方法。
參考文獻
[1]匡澤.ASP.NET的性能優(yōu)化及其安全性的探討[J].商場現(xiàn)代化,2008(12).
[2]林丁報,景宏磊.Web應(yīng)用前端性能優(yōu)化淺析[J].科技資訊,2011(19).