• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2009-03-02 09:33:14周建鯤
      新媒體研究 2009年2期
      關鍵詞:性能優(yōu)化

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

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

      中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0120077-01

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

      一、編碼級別

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

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

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

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

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

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

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

      5.異常處理。應通過預先判斷來避免異常的發(fā)生,而不是明知道異??赡軙l(fā)生利用捕獲異常來屏蔽可能的錯誤。

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

      二、頁面級別

      對于Web系統(tǒng)來說,頁面是很重要的一個部分,客戶端和服務器端就是通過靜態(tài)的HTML、JS等代碼進行交互的。

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

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

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

      4.盡可能把幾個圖片合成一個圖片來減少向Web服務器請求的次數(shù)。

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

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

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

      三、架構級別

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

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

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

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

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

      四、配置與部署

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

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

      2.必要時調(diào)整應用程序每個輔助進程的線程數(shù)。進程中有太多線程往往會降低服務器的速度,因為額外的上下文交換導致操作系統(tǒng)將CPU周期花在維護線程而不是處理請求上。

      3.不要將日志文件與Web頁存儲在同一個硬盤上。這將阻止硬盤日志記錄線程干預檢索Web頁的線程。

      4.在IIS中配置HTTP壓縮可以減少頁面加載時間。

      五、結束語

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

      參考文獻:

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

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

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

      作者簡介:

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

      猜你喜歡
      性能優(yōu)化
      SQL Server數(shù)據(jù)庫性能優(yōu)化的幾點分析
      Web應用的前端性能優(yōu)化
      660MW超超臨界火電機組RB性能優(yōu)化
      WEB網(wǎng)站緩存性能優(yōu)化
      淺析Lustre的優(yōu)化設置
      Oracle數(shù)據(jù)庫性能調(diào)整與優(yōu)化分析
      科技視界(2016年1期)2016-03-30 14:27:50
      禹州市| 东丽区| 冕宁县| 龙江县| 太仆寺旗| 东乡县| 呼玛县| 平塘县| 龙里县| 岳普湖县| 峡江县| 河间市| 城市| 阿拉尔市| 逊克县| 临朐县| 西吉县| 奉新县| 大足县| 定边县| 黄浦区| 彭泽县| 祁连县| 建宁县| 基隆市| 洞头县| 新龙县| 格尔木市| 景洪市| 临猗县| 海淀区| 凤凰县| 华宁县| 武山县| 建始县| 瑞安市| 宕昌县| 乐昌市| 响水县| 文成县| 巫溪县|