亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ASP.NET應(yīng)用系統(tǒng)性能研究與探討

        2009-03-02 09:33:14周建鯤
        新媒體研究 2009年2期

        [摘要]主要介紹基于ASP.NET應(yīng)用系統(tǒng)性能優(yōu)化方面問(wèn)題的解決方案。用于提高web應(yīng)用程序的應(yīng)用效果。

        [關(guān)鍵詞]ASP.NET應(yīng)用系統(tǒng) 性能優(yōu)化

        中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0120077-01

        一個(gè)系統(tǒng)的性能是否良好,已經(jīng)成為系統(tǒng)是否成功的標(biāo)志之一。下面對(duì)基于ASP.NET應(yīng)用系統(tǒng)性能從四個(gè)方面進(jìn)行探討。

        一、編碼級(jí)別

        編碼級(jí)別的優(yōu)化主要注意的問(wèn)題包括以下幾個(gè)方面:

        1.?dāng)?shù)據(jù)連接。操作數(shù)據(jù)庫(kù)最常用的操作就是創(chuàng)建數(shù)據(jù)庫(kù)連接,這一系列操作非常耗費(fèi)資源。在操作過(guò)程中應(yīng)注意:數(shù)據(jù)庫(kù)連接盡量晚打開(kāi)早關(guān)閉;盡量使用優(yōu)化過(guò)的SQL語(yǔ)句以減少執(zhí)行時(shí)間,比如,不在查詢語(yǔ)句中包含子查詢語(yǔ)句、充分利用索引等。

        2.?dāng)?shù)據(jù)查詢。在數(shù)據(jù)操作中,數(shù)據(jù)查詢是非常普通的操作。提高數(shù)據(jù)查詢操作的性能將對(duì)提高應(yīng)用程序性能有很大的幫助。在數(shù)據(jù)查詢中應(yīng)注意的事項(xiàng)如下:

        (1)Select記錄的時(shí)候,只返回需要的字段,不要把所有字段都返回。(2)一般情況下,讀取大量數(shù)據(jù),對(duì)返回?cái)?shù)據(jù)不做大量處理用SqlDataReader,對(duì)返回?cái)?shù)據(jù)大量處理用dataset比較合適。(3)執(zhí)行多條SQL語(yǔ)句進(jìn)行查詢時(shí),盡量使用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn),避免多次向服務(wù)器傳送數(shù)據(jù)。(4)后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server服務(wù)器時(shí),多使用帶有參數(shù)的SQL命令,SQL Server只對(duì)命令編譯一次,對(duì)于不同的參數(shù)重復(fù)使用,節(jié)省了服務(wù)器應(yīng)用效能。

        3.字符串操作。字符串操作是應(yīng)用程序中經(jīng)常使用的功能,如果能夠提高字符串操作的性能,就可以實(shí)現(xiàn)提高Web應(yīng)用程序的性能。

        (1)進(jìn)行字符串連接時(shí),要直接使用“+”將數(shù)字添加到字符串中。(2)大量拼接字符串最好使用StringBuilder來(lái)完成操作,耗時(shí)會(huì)更短。(3)使用值類型的ToString方法可以避免裝箱拆箱操作,避免系統(tǒng)消耗,極大提高性能。(4)如果需要把字符串向客戶端輸出,選擇直接輸出會(huì)比拼接后再輸出效果好。

        4.釋放資源。對(duì)于實(shí)現(xiàn)了Dispose模式的類型都可以使用using來(lái)確保它能被釋放。對(duì)于數(shù)據(jù)庫(kù)連接、文件連接和網(wǎng)絡(luò)連接等非常重要的資源,我們都可以使用using來(lái)確保資源能釋放。

        5.異常處理。應(yīng)通過(guò)預(yù)先判斷來(lái)避免異常的發(fā)生,而不是明知道異常可能會(huì)發(fā)生利用捕獲異常來(lái)屏蔽可能的錯(cuò)誤。

        6.使用泛型集合來(lái)代替普通集合能夠避免裝箱拆箱操作,提高性能。

        二、頁(yè)面級(jí)別

        對(duì)于Web系統(tǒng)來(lái)說(shuō),頁(yè)面是很重要的一個(gè)部分,客戶端和服務(wù)器端就是通過(guò)靜態(tài)的HTML、JS等代碼進(jìn)行交互的。

        1.對(duì)于需要經(jīng)常更新的數(shù)據(jù),可以使用頁(yè)面緩存在一段時(shí)間內(nèi)緩存頁(yè)面。

        2.在使用服務(wù)器控件時(shí)要避免使用服務(wù)器控件視圖狀態(tài)來(lái)提高性能。雖然視圖狀態(tài)能夠自動(dòng)在頁(yè)面往返過(guò)程中維護(hù)服務(wù)器控件的狀態(tài),減少開(kāi)發(fā)者的工作量,但卻使性能降低。因此,在不需要維護(hù)控件狀態(tài)的情況下,應(yīng)該將服務(wù)器控件的EnableViewState屬性設(shè)置為false。

        3.應(yīng)用中,我們可以使用DataList控件或Repeater控件來(lái)替代DataGrid控件來(lái)創(chuàng)建類似Excel的列表,可以減少性能上的開(kāi)銷。

        4.盡可能把幾個(gè)圖片合成一個(gè)圖片來(lái)減少向Web服務(wù)器請(qǐng)求的次數(shù)。

        5.不要把整個(gè)頁(yè)面放到一個(gè)大表格中,使用表格來(lái)定義整個(gè)頁(yè)面。如果這樣做的話,那么頁(yè)面只有等到整個(gè)頁(yè)面全部加載完畢后才會(huì)呈現(xiàn)。

        6.盡量把CSS分離到單獨(dú)的文件中,而不要在每個(gè)頁(yè)面的頂部都生成一段CSS代碼,CSS文件能被客戶端緩存,使用獨(dú)立的CSS文件能夠減少頁(yè)面的數(shù)據(jù)量。

        7.可以通過(guò)Page.IsPostBack判斷是否首次加載頁(yè)面來(lái)避免重復(fù)執(zhí)行一些不必要的代碼。

        三、架構(gòu)級(jí)別

        系統(tǒng)架構(gòu)對(duì)整個(gè)系統(tǒng)性能的影響較大,對(duì)分布式系統(tǒng)的性能影響尤其大。

        1.?dāng)?shù)據(jù)緩存。ASP.NET提供了一些簡(jiǎn)單的機(jī)制,它們會(huì)在不需要為每個(gè)頁(yè)請(qǐng)求動(dòng)態(tài)計(jì)算頁(yè)輸出或數(shù)據(jù)時(shí)緩存這些頁(yè)輸出或數(shù)據(jù)。另外,通過(guò)設(shè)計(jì)要進(jìn)行緩存的頁(yè)和數(shù)據(jù)請(qǐng)求(特別是在站點(diǎn)中預(yù)期將有較大通訊量的區(qū)域),可以優(yōu)化這些頁(yè)的性能。

        (1)不要緩存太多項(xiàng)。緩存每個(gè)項(xiàng)均有開(kāi)銷,特別是在內(nèi)存使用方面。(2)不要緩存容易重新計(jì)算和很少使用的項(xiàng)。(3)給緩存的項(xiàng)分配的有效期不要太短。很快到期的項(xiàng)會(huì)導(dǎo)致緩存中不必要的周轉(zhuǎn),并且經(jīng)常導(dǎo)致更多的代碼清除和垃圾回收工作。

        2.分布式程序。對(duì)于分布式程序來(lái)說(shuō),各個(gè)組件之間的通信決定了整個(gè)系統(tǒng)的性能。因此需要通過(guò)改善通信方式來(lái)盡量減少在網(wǎng)絡(luò)上傳遞的數(shù)據(jù)的量。(1)跨網(wǎng)段式使用Web服務(wù)通信。(2)同一個(gè)子網(wǎng)內(nèi)使用REMOTING TCP通道進(jìn)行通信。(3)同一個(gè)機(jī)器內(nèi)使用REMOTING IPC通道進(jìn)行通信。

        3.分布靜態(tài)資源。對(duì)于大型系統(tǒng),我們可以單獨(dú)把系統(tǒng)內(nèi)的所有靜態(tài)資源分布到獨(dú)立的服務(wù)器上,然后把對(duì)這些資源的URL連接通過(guò)直接指向這個(gè)服務(wù)器。

        四、配置與部署

        IIS(Internet信息服務(wù))的設(shè)置決定了整個(gè)系統(tǒng)的性能好壞。

        1.在部署生產(chǎn)應(yīng)用程序或進(jìn)行任何性能測(cè)量之前,一定記住禁用調(diào)試模式。如果啟用了調(diào)試模式,應(yīng)用程序的性能可能受到非常大的影響。所以發(fā)布前要把Web.config中compilation節(jié)點(diǎn)的debug設(shè)置為false來(lái)禁用調(diào)試。

        2.必要時(shí)調(diào)整應(yīng)用程序每個(gè)輔助進(jìn)程的線程數(shù)。進(jìn)程中有太多線程往往會(huì)降低服務(wù)器的速度,因?yàn)轭~外的上下文交換導(dǎo)致操作系統(tǒng)將CPU周期花在維護(hù)線程而不是處理請(qǐng)求上。

        3.不要將日志文件與Web頁(yè)存儲(chǔ)在同一個(gè)硬盤(pán)上。這將阻止硬盤(pán)日志記錄線程干預(yù)檢索Web頁(yè)的線程。

        4.在IIS中配置HTTP壓縮可以減少頁(yè)面加載時(shí)間。

        五、結(jié)束語(yǔ)

        ASP.NET作為全新一代的動(dòng)態(tài)網(wǎng)頁(yè)生成系統(tǒng),它在平臺(tái)性能方面與原有的ASP相比已有了一個(gè)本質(zhì)的提高。但要在此基礎(chǔ)上開(kāi)發(fā)出專業(yè)水準(zhǔn)的、符合生產(chǎn)標(biāo)準(zhǔn)的、受用戶歡迎的web應(yīng)用程序,還需要開(kāi)發(fā)人員在編碼、頁(yè)面、架構(gòu)和配置部署等各方面進(jìn)行優(yōu)化處理,以提高應(yīng)用系統(tǒng)的總體性能。

        參考文獻(xiàn):

        [1]馮方方,ASP.NET基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2005.

        [2]賽奎春、王國(guó)輝,ASP工程應(yīng)用與項(xiàng)目實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2005.

        [3]Dino Esposito,ASP.NET 2.0技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,2006.

        作者簡(jiǎn)介:

        周建鯤,男,山東省青島市,中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院研究生,研究方向:ASP.NET應(yīng)用系統(tǒng)開(kāi)發(fā)。

        日韩黑人欧美在线视频观看| 国产精品偷窥熟女精品视频| 国内女人喷潮完整视频| 免费无码国产v片在线观看| 精品少妇一区一区三区| 青青草成人免费播放视频| 2021国产精品视频网站| 人妻丰满熟妇av无码片| 久久波多野结衣av| 麻豆成人久久精品二区三区91| 国产免费av手机在线观看片| 国产精品国产三级国av在线观看| 91av小视频| 亚洲国产精品美女久久久| 亚洲一二三区免费视频| 国产无遮挡又黄又爽免费网站 | 久久久久久人妻一区二区无码Av | 亚洲乱码一区二区av高潮偷拍的| 人妻尝试又大又粗久久| 曰本无码人妻丰满熟妇5g影院| 超清无码AV丝袜片在线观看| 一区二区中文字幕在线观看污污| 亚洲精品乱码久久久久久中文字幕| 精品久久久久久久中文字幕| 亚洲va中文字幕欧美不卡| 青青草成人在线播放视频| 亚洲精品无码久久久影院相关影片| 二区三区视频| 性一交一乱一乱一视频亚洲熟妇| 日本一区二区三区视频网站| 日本50岁丰满熟妇xxxx| 国产一级淫片免费播放电影| 久久精品国产黄片一区| av色综合久久天堂av色综合在| 少妇激情av一区二区| 一区二区三区不卡免费av| 性感女教师在线免费观看| 亚洲日本va中文字幕| 538任你爽精品视频国产| 国产成人av三级三级三级在线 | 中文字幕精品一区二区2021年|