<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
    數據加載中……

    提高性能的細節(jié)

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

    一、緩存

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

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

    考慮將動態(tài)內容作成用戶控件

    2)  緩存合理的數據

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

    3)  選擇適當的方式

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

    二、視圖狀態(tài)

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

    1)  如果不需要視圖狀態(tài),則禁用

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

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

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

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

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

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

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

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

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

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

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

    五、         關于Application對象和Session對象

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

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

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

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

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

    六、         關于字符串操作

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

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

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

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

    七、         關于數據訪問

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

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

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

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

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

    6)  使用連接池提高性能

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

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

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

    八、         關于代碼優(yōu)化

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

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

    3)  將循環(huán)判定條件放在for語句外

    4)  避免在循環(huán)里創(chuàng)建對象

    5)  盡量減少裝箱的次數

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

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

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

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

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

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


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

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


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品tv久久久久久久久 | 97在线免费视频| 无码国模国产在线观看免费| 亚洲国产精品日韩在线| 免费看片在线观看| 亚洲av永久综合在线观看尤物| 在免费jizzjizz在线播| 亚洲成a人片毛片在线| 国产92成人精品视频免费| 亚洲人成高清在线播放| 毛片免费观看的视频| 亚洲Av永久无码精品一区二区| 久久久久久亚洲精品| 麻豆精品不卡国产免费看| 久久亚洲精品成人| 午夜免费福利片观看| 亚洲国产成人精品无码一区二区| av无码久久久久不卡免费网站| 亚洲一级毛片免观看| 好吊妞998视频免费观看在线| 亚洲av永久无码| 中文字幕专区在线亚洲| 久久99免费视频| 亚洲一区二区三区四区视频| 免费看的黄色大片| 国产黄片不卡免费| 亚洲欧洲第一a在线观看| 免费A级毛片无码免费视| 色费女人18女人毛片免费视频| 日韩亚洲变态另类中文| 久久久免费精品re6| 国产亚洲精久久久久久无码77777| 国产成人无码区免费网站| 亚洲一级在线观看| 亚洲人午夜射精精品日韩| 99国产精品视频免费观看| 国产成人精品日本亚洲语音| 国产亚洲精品自在久久| 成年人视频在线观看免费| 国产精品内射视频免费| 亚洲中文字幕无码av在线|