<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海闊天空

    I'm on my way!
    隨筆 - 17, 文章 - 69, 評論 - 21, 引用 - 0
    數據加載中……

    提高性能的細節

    從編碼方面提高網站性能的手段

    一、緩存

    緩存是ASP.NET中提高性能的重要手段,緩存一般遵循以下原則:

    1)  在頁面中將靜態內容與動態內容分割開來

    考慮將動態內容作成用戶控件

    2)  緩存合理的數據

    一般應當緩存應用程序集的數據、多個用戶共同使用的數據、靜態數據、生成數據需要很大開銷的動態數據、DataSet以及自定義對象等。不要緩存數據庫連接對象、DataReader。

    3)  選擇適當的方式

    如可以使用頁面緩存指令,API等。

    二、視圖狀態

    視圖狀態放在頁面中名為_VIEWSTATE的表單隱藏域里面,隨頁面一起被發送到客戶端,在用戶提交頁面時,又被提交到服務器。

    1)  如果不需要視圖狀態,則禁用

    視圖狀態默認是允許的,如果頁面不進行PostBack,如果不處理服務器控件的事件,如果服務器控件的數據每次都需要重新計算等

    2)  盡量減少視圖狀態中存放的對象

    三、         關于頁面處理(減少頁面生成的時間和過程)

    1)              應盡量減少頁面文件的大小

    2)              通過檢測Page.IsPostBack減少代碼執行的數量

    3)              禁止使用Debug=“true”,減少頁面生成過程中生成額外的調試信息

    4)              使用Server.Transfer而不使用Response.Redirect,減少服務器和客戶端間的往返

    5)              盡量使用客戶端驗證,減少服務器和客戶端間的往返

    6)              在適當的場合使用服務器控件

    7)              盡量避免嵌套的服務器控件

    四、         避免使用Page.DataBind和DataBinder.Eval

    五、         關于Application對象和Session對象

    1)  使用靜態屬性存儲數據而不使用Application對象,在Application對象里存儲只讀類型的數據都將回提高性能

    2)  盡量使用InProc模式的Session,這個模式是最快的

    3)  在Session里存儲基本類型的數據減少序列化的所消耗的資源

    4)  如果不用Session變量,使用EnvableViewState=“false”禁用

    5)  如果不修改Session變量的值,盡量使用ReadOnly屬性設置

    六、         關于字符串操作

    1)  盡量使用Response.Write將結果輸出到瀏覽器,這種方法是最快的。不要將字符串連接在一起一次輸出。

    2)  在字符串短并且少的情況下可以使用String.Concat方法,而在字符串長度未知,并且字符串大的情況下,使用StringBuilder對象

    3)  不要使用strVar==“”來判斷字符串是否為“”,這樣它會創建額外的字符串,請使用strVar==String.Empty代替或者使用strVar.Length==0來判斷

    4)  請使用String.Compare方法進行字符串的比較

    七、         關于數據訪問

    1)  盡量使用存儲過程返回數據,不要直接在代碼中進行查詢

    2)  在數據庫中只返回有用的數據結果,不要選擇不使用的數據字段

    3)  進行使用DataReader進行數據綁定,DataReader是單向只讀的

    4)  盡量一次返回多個數據集而不是每個記錄集分別打開一次數據庫連接進行查詢

    5)  盡量晚的打開數據庫,盡量早的關閉數據庫

    6)  使用連接池提高性能

    7)  使用ExecuteNonQuery方法執行不返回數據的操作,使用ExecuteScalar方法返回單個結果的操作,使用Commandbehavīor.Sequentialaccess返回二進制數據或者大數據

    8)  如果多次相同的查詢,請使用Command.Prepare方法

    9)  使用GetOrdinal方法預先得到索引值,使用索引值比使用字符串的列名查詢數據效率更高

    八、         關于代碼優化

    1)  在解析基本數據類型時,使用Try方法如果解析失敗,會拋出異常,使用TryParse方法則只執行Else下的語句。

    2)  使用AppendAllText、WriteAllBytes等方法讀寫文件內容可以優化性能

    3)  將循環判定條件放在for語句外

    4)  避免在循環里創建對象

    5)  盡量減少裝箱的次數

    6)  不要使用例外控制程序的流程

    7)  在循環中不要使用不變的對象屬性或者字段

    8)  使用for循環代替foreach循環遍歷結合內容

    9)  數組是所有集合中最快的,如果沒有特殊需要,盡量使用數組代替集合

    10)    了解各個集合類型的特性,選擇合適的類型

    11)    使用泛型避免減少裝箱、拆箱


    摘自:http://www.51testing.com/?88979/spacelist-blog-page-2.html

    posted on 2009-08-24 21:37 石頭@ 閱讀(213) 評論(0)  編輯  收藏 所屬分類: web


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线看片免费不卡人成视频| 久久久久久久久久久免费精品| 免费国产成人18在线观看| 狠狠综合久久综合88亚洲| GOGOGO免费观看国语| 国产国拍精品亚洲AV片| 最新亚洲成av人免费看| 精品亚洲综合久久中文字幕| 精品视频在线免费观看| 婷婷亚洲久悠悠色悠在线播放| 久久久久国产免费| 亚洲免费观看网站| 成年人免费视频观看| 蜜芽亚洲av无码一区二区三区| 国产成人免费a在线视频色戒| 亚洲成熟丰满熟妇高潮XXXXX| 又大又硬又爽免费视频| 精品国产污污免费网站入口| 亚洲电影免费在线观看| 黄网站色在线视频免费观看| 亚洲熟妇无码一区二区三区| 又黄又爽一线毛片免费观看| 日本高清不卡aⅴ免费网站| 亚洲人成电影亚洲人成9999网 | 4399影视免费观看高清直播| 亚洲最大在线视频| 日韩a级毛片免费观看| 性生大片视频免费观看一级| 亚洲美免无码中文字幕在线| 亚洲av无码片vr一区二区三区| 亚洲国产一成久久精品国产成人综合 | 日韩亚洲变态另类中文| 无码国产精品一区二区免费模式 | 在线观看日本亚洲一区| 亚洲国产综合无码一区二区二三区| 国产日韩精品无码区免费专区国产 | 亚洲综合无码无在线观看| 亚洲一级特黄大片无码毛片| 日韩免费在线视频| 亚洲精品无码成人片久久不卡| 亚洲色婷婷综合久久|