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

首頁(yè) > 編程 > .NET > 正文

Asp.NET中常用的一些優(yōu)化性能的方法

2024-07-10 12:57:35
字體:
供稿:網(wǎng)友
asp.net中常用的一些優(yōu)化性能的方法


asp.net 的緩存機(jī)制相比asp有很大的改進(jìn),本文檔除對(duì)常用優(yōu)化方法進(jìn)行總結(jié)介紹外,強(qiáng)調(diào)了如何使用asp.net的緩存來獲得最佳性能。

1:不要使用不必要的session
和asp中一樣,在不必要的時(shí)候不要使用session。

可以針對(duì)整個(gè)應(yīng)用程序或者頁(yè)面禁用會(huì)話狀態(tài):

l 禁用頁(yè)面的會(huì)話狀態(tài)


l 禁用應(yīng)用程序的會(huì)話狀態(tài)

在應(yīng)用程序的web.config文件的sessionstate配置節(jié)中,將mode屬性設(shè)置為off。

即:。



2:不使用不必要的server control
asp.net中,大量的服務(wù)器端控件方便了程序開發(fā),但也可能帶來性能的損失,因?yàn)橛脩裘坎僮饕淮畏?wù)器端控件,就產(chǎn)生一次與服務(wù)器端的往返過程。因此,非必要,應(yīng)當(dāng)少使用server control。



3:不使用不必要的viewstate
默認(rèn)情況下,asp.net對(duì)所有的server control都啟用了viewstate(視圖狀態(tài))。但viewstate需要在客戶端保存一些信息,這會(huì)造成性能的消耗。當(dāng)必須使用server control時(shí),可以考慮禁止viewstate。

有兩種方式禁止viewstate:針對(duì)整個(gè)頁(yè)面或者單個(gè)控件禁用viewstate。

l 針對(duì)控件


l 針對(duì)頁(yè)面


4:不要用exception控制程序流程
有些程序員可能會(huì)使用異常來實(shí)現(xiàn)一些流程控制。例如:



try{

result=100/num;

}

catch(exception e)

{

result=0;

}

但實(shí)際上,exception是非常消耗系統(tǒng)性能的。除非必要,不應(yīng)當(dāng)使用異常控制來實(shí)現(xiàn)程序流程。

上面的代碼應(yīng)當(dāng)寫為:



if(num!=0)

result=100/num;

else

result=0;

5:禁用vb和jscript動(dòng)態(tài)數(shù)據(jù)類型
應(yīng)當(dāng)始終顯示地申明變量數(shù)據(jù)類型,這能夠節(jié)約程序的執(zhí)行時(shí)間。為此,可以在頁(yè)面前面寫明:

6:使用存儲(chǔ)過程完成數(shù)據(jù)訪問
7:只讀數(shù)據(jù)訪問不要使用dataset。
dataset作為一個(gè)功能強(qiáng)大的、支持離線的數(shù)據(jù)庫(kù),其對(duì)性能的開銷也相對(duì)較大。在特定的場(chǎng)合可以使用.net中的其它數(shù)據(jù)集作為替代。

n 使用sqldatareader代替dataset;

n sqldatareader是read-only,forward-only。

8:關(guān)閉asp.net的debug模式
為了方便開發(fā)調(diào)試,vs.net中對(duì)于debug模式默認(rèn)是開啟的,在部署應(yīng)用程序時(shí),應(yīng)該關(guān)閉debug模式,這將有效提高應(yīng)用程序性能。

9:使用asp.net output cache緩沖數(shù)據(jù);
提供緩沖功能是asp.net中非常強(qiáng)大的一種功能。曾看到過某些評(píng)測(cè)說:asp.net程序的性能比sun的jsp應(yīng)用程序性能快上幾倍,實(shí)際上,該評(píng)測(cè)程序非常重要的一點(diǎn)就是使用了很多asp.net的緩沖功能。

asp.net中常用的緩沖方式有:

n 頁(yè)面緩沖

一個(gè)例子:查詢北京市的天氣。因?yàn)樘鞖鈹?shù)據(jù)在一定的時(shí)間內(nèi)是相對(duì)規(guī)定的。

當(dāng)web程序中第一次查詢北京市的天氣時(shí),應(yīng)用程序可能是調(diào)用一個(gè)遠(yuǎn)程的webservice獲取天氣信息。而其后的用戶就可以從緩沖中得到當(dāng)前的天氣信息。這將大大提高性能,減少服務(wù)器的壓力。

方式:

u :指明頁(yè)面使用緩沖

u duration:控制緩沖有效的時(shí)間,單位為分鐘。

u varybyparam:用于指明是否緩沖的判斷依據(jù)。例如,如果第一個(gè)用戶查詢的是北京的天氣,則緩沖中存儲(chǔ)了北京市的天氣。當(dāng)?shù)诙€(gè)用戶查詢上海的天氣時(shí),為避免讀取到錯(cuò)誤的緩沖,可以用這樣的代碼緩沖多個(gè)城市的天氣:


這就指明了根據(jù)頁(yè)面url中的cityname參數(shù)來緩沖多份數(shù)據(jù)。

n 片斷緩沖

在asp.net中,除了在頁(yè)面范圍內(nèi)使用緩沖,也還可以針對(duì)user control使用output cache參數(shù)實(shí)現(xiàn)對(duì)用戶控件的緩沖。同樣的,一個(gè)頁(yè)面中相同類型的控件也可以有多個(gè)不同的緩沖。可以根據(jù)參數(shù)來實(shí)現(xiàn)不同的緩沖。

例如:對(duì)于控件可以根據(jù)control 的c屬性的不同實(shí)現(xiàn)不同的緩沖。



n 數(shù)據(jù)緩沖



n 緩沖的過期依賴條件

某種意義上,cache和application是一樣的,都是一種公有的對(duì)象。為了取得緩沖與數(shù)據(jù)有效性之間的平衡,可以根據(jù)需要對(duì)緩沖過期策略進(jìn)行合理的設(shè)置。

u 文件依賴

cache.insert (“mydata”, source

, new cachedependency(server.mappath(“authors.xml”)))

此代碼的含義是當(dāng)authors.xml文件不發(fā)生變化的時(shí)候,緩沖mydata始終有效。



u 時(shí)間依賴

設(shè)定1小時(shí)后過期,這是一種絕對(duì)過期。

cache.insert(“mydata”,source,null

,datetime.now.addhours(1),timespan.zero);



u 相對(duì)過期依賴

當(dāng)dataset不再發(fā)生變化20分鐘以后,緩沖過期。

cache.insert(“mydata”,source,null

,datetime.maxvalue,timespan.fromminutes(20));


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 随州市| 连城县| 武宣县| 潍坊市| 岳阳县| 沭阳县| 买车| 贵港市| 水城县| 灌阳县| 遂宁市| 巴塘县| 濮阳市| 平泉县| 敦化市| 常熟市| 洛南县| 津市市| 盐源县| 天长市| 长顺县| 本溪市| 惠安县| 湘潭市| 金秀| 雷波县| 安仁县| 龙川县| 民勤县| 浪卡子县| 河曲县| 隆林| 深圳市| 修文县| 敖汉旗| 德兴市| 汝南县| 青岛市| 云和县| 青岛市| 崇文区|