国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net的性能優化

2024-07-10 13:05:41
字體:
來源:轉載
供稿:網友

性能對于一個應用程序來說是一個很重要的問題,在web的開發中也是一樣,相信沒有人愿意在電腦屏幕前花8秒鐘來等待一個也面的打開,這就是常說的在web上的8秒鐘原則。對于一個應用程序的性能我們應該把它當作是應用程序的一項功能,在設計的時候就應該處理好性能的問題,而不應該在整個程序開發完了以后再來進行優化,因為這樣會付出更多的代價。
下面來討論一下在asp.net中的性能問題。
    asp.net相對于以前的版本asp通過引擎的改變,從而提高了性能。asp是一種腳本解釋引擎,有很多的代碼是運行時接受用戶請求后編譯的,這樣在很多的用戶都發生同一請求時會造成服務器端的壓力很重,而asp.net是采用一次編譯的策略,只有當某一個頁面第一次被請求時服務器才通過整個的編譯過程,這樣就大大提高了運行效率。但只是靠引擎的優化并不能完全解決asp.net的性能問題,代碼的優化是另一個很重要的方面。
    用asp.net創建web應用程序時應該使用三層結構模型,三層就夠是近幾年來比較流行的一種模型。三層結構的三層分別為表示層(用戶可以看到的頁面)、業務層(實現應用程序的業務功能,一般稱為組件,由.vb或.cs等文件編譯而成的.dll控件)、數據層(主要涉及到用ado.net訪問數據庫)。三層結構可以使程序具有更好的可擴展性、靈活性、安全性、平臺無關性以及可維護性。
asp.net可以使用c?;騰b.net這些面向對象的高級語言來編寫邏輯代碼,我們使用這些語言定義變量時要求顯式地定義所有變量的類型,避免使用object類型的晚綁定方法,應該早綁定,早綁定有利于代碼的執行有利于提高性能。我們可以在page指令中加上explicit=”true”,如:<%@ page language=”vb” explicit=”true”%>這樣我們每次在聲明變量時都應該指定類型。還可以在page指令中加上strict屬性如:<%@ page language=”vb” strict=”true” %>來避免晚綁定。
    viewstate是asp.net的新功能。使用viewstate可以很容易地在往返服務器的過程中保持控件狀態。但使用viewstate會使文件的大小明顯增大而且還會影響性能。所以建議如果不是萬不得已就應該關閉viewstate如:<%@ page enableviewstate=”false” %> 或者是單獨停掉某一個控件的viewstate。除此之外,對于session我們還應該選擇合適的方式存放,有三種方式:inproc(在進程中存放)、stateserver(放在狀態服務器)、database(在數據庫中存放)。在inproc中性能最好,但擴展性相對來說較差,其它的兩種方式性能沒inproc好,但具有良好的擴展性,所以我們應該根據具體的情況來作選擇。如果不需要使用sesion也應該禁用如:<%@ page enablesession=”false” %> 這樣有助于也面的請求。如果只是讀取session不做修改可以這樣做:<%@ page enablesession=”readonly” %> 也可以提高性能。
    還有一個很重要的提高性能的方法就是使用緩存技術,asp.net中有三種緩存機制頁面緩存、片段緩存和數據緩存。頁面緩存是將頻繁訪問的頁面放入緩存,當用戶再次請求該頁面時就不需要重新生成頁面而是直接將緩存中的頁面發送到客戶端,節省了響應時間,極大提高了性能。具體做法是在頁面代碼中加上outputcache指令,如:<%@ outputcache duration=”60” varybyparam=”none” %> 在上面的代碼中duration是指緩存的時間,根據程序的實際情況自行設定,varybyparam是指緩存的內容根據一個參數來發生變化。比方說已個頁面上有一個查詢天氣的功能,當一個用戶輸入北京查詢了后,頁面被緩存了,另一個用戶馬上查詢上海的天氣,為了產生輸出的結果還是被緩存的北京這樣的錯誤,varybyparam就起到作用了,<%@ outputcache duration=”60” varybyparam=”textbox1” %> 其中textbox1是指輸入地址的文本框的id號。片段頁面緩存主要是用于緩存用戶控件中的內容,在用戶控件的頁面代碼中添加outputcache指令,然后在頁面中加入用戶控件就可以了。有些時候,用戶會請求大量相同的數據,如果頻繁地讀取這些數據就會浪費很多的時間,這時就可以應用數據緩存技術來提高性能??梢酝ㄟ^編程的方式來緩存任何對象。在asp.net中是通過cachel類來實現的。如:cache[“myname”]=myname;  myname=cache[“myname”];。
    做離不開數據庫,在操作數據庫的時候應盡量使用存儲過程,這樣可以消除數據庫的往返訪問。在使用dataset和datareader時也要注意,如果從數據庫中查詢出的數據只是在前端顯示而不需要修改就應該使用datareader,因為datareader的性能比dataset好。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西县| 西和县| 习水县| 岗巴县| 万全县| 博白县| 邵东县| 嘉鱼县| 石柱| 三原县| 湟源县| 岫岩| 盘山县| 和田县| 津市市| 自治县| 望奎县| 彰武县| 高清| 棋牌| 定南县| 呼玛县| 沈丘县| 凤山市| 广水市| 镇康县| 淮北市| 蓬安县| 右玉县| 项城市| 沙湾县| 苏尼特右旗| 景德镇市| 电白县| 澄迈县| 宁远县| 四子王旗| 乌兰浩特市| 达拉特旗| 尼木县| 额尔古纳市|