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