[學習筆記] ASP.NET應用程式效能最佳化

來源:互聯網
上載者:User
 

ASP.NET應用程式效能最佳化

    一. 頁面和伺服器處理
        1. 避免與伺服器端的往返行程
            eg: a. 一次讀取大量資料,在用戶端處理之後再同意向資料庫提交;
                    b. ajax,前端頁面不重新整理,單獨線程與伺服器互動,減少伺服器往返可以提高效能。
        2. 用IsPostback避免往返過程中的額外操作
            頁面事件程序:Page_PreInit -> Page_Init -> Page_Load -> Control events -> Page_PreRender -> Page_Unload
            任何 page 載入都要走一個完整的頁面過程,使用 IsPostback 可以過濾一些步驟。
        3. 謹慎使用伺服器端控制項
            伺服器控制項封裝一些事件,更占開銷。可以考慮使用 Html 控制項。
        4. 檢視狀態 ViewState
            關閉整個頁面的試圖狀態 <%@ EnableViewState="false"%>,也可以關閉指定控制項試圖狀態。
    二. 狀態處理
        1. 禁用繪畫狀態
            a. 在會話未被使用時,禁用會話
                <%@ Page EnableSessionState="false"%>
            b. 使用唯讀繪畫
                <%@ Page EnableSessionState="ReadOnly"%>
            c. 禁用 Web Service 的胡話狀態
                [WebMethod(false)]
                [WevMethod(EnableSession=false)]
            d. 禁用應用程式繪畫
                在 web.config 中<sessionState Mode="Off">
        2. 謹慎選擇工作階段狀態提供者
            a. 進程內繪畫狀態
                asp.net 預設模式,速度最快。
                僅在工作階段狀態中使用少量容易丟失的資料,不會對應用程式產生較大影響。

在 web.config 中<sessionState Mode="InProc">
            b. Windows 服務 進程外工作階段狀態
                在 web.config 中<sessionState Mode="StateServer" stateConnectionstring=”tcpip=localhost:連接埠號碼”>
            c. SQL Server 資料庫中的進程外工作階段狀態

在 web.config 中<sessionState Mode="SQLServer" allowCustomerDatabase=”false” stateConnectionstring=”database=資料庫名/sql2005;uid=sa”>

在控制台:aspnet_reg.exe –s 資料庫名\sql2005 –u –ssad –sstype p

    三. 資料訪問

    1. 將預存程序用於資料訪問
    2. 使用SqlDataReader 獲得快進唯讀資料遊標
    3. 儘可能快取資料和頁面輸出

    不需要動態計算輸出的頁面,考慮使用頁面緩衝
    注意:a. 不要使用太多緩衝(佔用伺服器記憶體)
                b. 緩衝時間不能太短
    四. Web引用程式
          1. 大型應用程式,先執行先行編譯
          2. 必要的時候,調整每個應用程式進程的線程數
          3. 禁用偵錯模式
          4. 最佳化應用程式設定檔
                     a. 是否需要身分識別驗證
                     b. 字元集(整站使用 ascii,配置成 utf-8,少許提高效能)
                     c. 清除HttpModual中不用的模組
    五. 編碼最佳化
              1. 不要依賴代碼中的異常捕獲,用判斷處理
              2. 大量字串連結,使用StringBuilder
              3. 不要使用過多記憶體
              4. 盡量避免使用Finalize方法的對象,重寫Dispose方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.