增加asp.net應(yīng)用程序性能的20種方法(簡(jiǎn)單有效)
1.禁用session
假如您用不到session會(huì)話跟蹤請(qǐng)務(wù)必禁用它。您可以在每個(gè)asp.net頁(yè)面中設(shè)置如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
EnableSessionState="false" %>
當(dāng)然您可以在web.config應(yīng)用程序配置設(shè)置中設(shè)計(jì)<sessionState>mode的值為Off.
2.輸出緩沖設(shè)置
這個(gè)方法對(duì)你的應(yīng)用很有幫助.
asp.net應(yīng)用程序基本上在服務(wù)器端批量生成數(shù)據(jù),這時(shí)必須設(shè)置Response.Flush清空緩沖區(qū)。這樣會(huì)減輕服務(wù)器端的緩沖區(qū)壓力。
<%response.buffer=true%>
替換成
<%response.flush=true%>
3.避免服務(wù)器端驗(yàn)證.
用客戶端驗(yàn)證代替服務(wù)器端驗(yàn)證.服務(wù)器端數(shù)據(jù)驗(yàn)證將會(huì)大量消耗您的服務(wù)器
上的資源,并且會(huì)代來(lái)大量的頁(yè)面數(shù)據(jù)回傳.
4.盡量多使用Repater控件,而不要使用DataList, DataGrid, 和 DataView 控件
Asp.net是一個(gè)非常好的平臺(tái),不幸的是,有很多控件會(huì)大量生成html代碼,這
樣務(wù)必會(huì)造成性能上的問(wèn)題.Asp.net repeater 控件非常好用。使用它你將會(huì)
額外多寫一些代碼,但是將來(lái)您會(huì)發(fā)現(xiàn)它帶來(lái)的好處遠(yuǎn)比多寫代碼帶來(lái)的麻煩。
5.在執(zhí)行大動(dòng)作操作時(shí)請(qǐng)使用 HttpResponse.IsClientConnected
if (Response.IsClientConnected)
{
// If still connected, redirect
// to another page.
Response.Redirect("Page2CS.aspx", false);
}
Response.Redirect有什么錯(cuò)誤嗎,請(qǐng)繼續(xù)答案在下面
6.使用HTTPServerUtility.Transfer去替換Response.Redirect.
Redirect(重定向)非常麻煩,它僅用于用于從當(dāng)前物理服務(wù)器跳轉(zhuǎn)到其它服務(wù)
器.如果只是在本服務(wù)器內(nèi)頁(yè)面跳轉(zhuǎn)請(qǐng)使用transfer(轉(zhuǎn)發(fā)),這樣會(huì)減少很多沒(méi)
有必要的客戶端請(qǐng)求.
7.當(dāng)使用服務(wù)器端驗(yàn)證時(shí)請(qǐng)務(wù)必使用Page.IsValid檢查頁(yè)面是否能過(guò)驗(yàn)證
由于您使用了驗(yàn)證控件,你可能認(rèn)為asp.net會(huì)為處理以下的所有事情,是這樣嗎?
錯(cuò)!當(dāng)有無(wú)效數(shù)據(jù)傳到服務(wù)器端時(shí)IsVlid屬性被改為fasle.在繼續(xù)處理您的表單之前請(qǐng)檢查Page.IsValid屬性
8.部署應(yīng)用程序請(qǐng)使用Release版本
在部署應(yīng)用程序時(shí)請(qǐng)確定您的應(yīng)用程序應(yīng)是Release版本而不是Debug版本.假如您認(rèn)為這無(wú)關(guān)僅要,你就錯(cuò)了。
如果使用debug模板極容易發(fā)生請(qǐng)求超時(shí)。部署成Release版本,你將會(huì)發(fā)現(xiàn)速度有很大的提升.
9.關(guān)閉 Tracing(追蹤)
Tracing是非常可怕的,你有沒(méi)有忘記關(guān)閉它.假如沒(méi)用,請(qǐng)確定編輯web.config并且關(guān)閉它.它將占用大量您的程序資源
<configuration>
<system.web>
<trace enabled="false" pageOutput="false" />
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
<compilation debug="false" />
</system.web>
</configuration>
10.Page.IsPostBack要經(jīng)常去使用
請(qǐng)確定不要執(zhí)行太多回傳代碼,我已經(jīng)記不清有多少開(kāi)發(fā)者忘記使用檢查IsPostBack屬性.我在平常開(kāi)發(fā)中會(huì)經(jīng)常使用該屬性檢查.
11.避免使用異常
避免拋出異常和處理異常。除非在萬(wàn)不得已情況下使用異常處理。
異常是相當(dāng)?shù)睦速M(fèi)服務(wù)器端資源并會(huì)大大降低效率.盡量不使用異常處理。
12.設(shè)置緩存(Caching)
使用頁(yè)面快速設(shè)置頁(yè)頁(yè)Caching和使用ASP.net緩沖API!
有很多東西要學(xué),這個(gè)可不是你想像中那么簡(jiǎn)單.這個(gè)有很多策略要采用.什么時(shí)候使用緩沖?你使用緩存了嗎?
13.設(shè)置每一次請(qǐng)求緩存
使用HTTPContect.Items僅要添加一個(gè)頁(yè)面用來(lái)設(shè)置每一個(gè)請(qǐng)求緩存.
14.StringBuilder類的使用
StringBuilder.Append 的速要比String + String速度快的多。
假如您連接的字符串較上可以不使用,當(dāng)連接次數(shù)大于3次上建議使用StringBuilder.Append方法,當(dāng)然也可以使用String.Concat
15.關(guān)閉ViewState
假如你沒(méi)有使用表單數(shù)據(jù)回傳,那么關(guān)閉viewsate??丶刈詣?dòng)打開(kāi)viewstate這樣回減慢你應(yīng)用程序速度.
public ShowOrdersTablePage()
{
this.Init += new EventHandler(Page_Init);
}
private void Page_Init(object sender, System.EventArgs e)
{
this.EnableViewState = false;
}
16.使用分頁(yè)
.net應(yīng)用程序分頁(yè)有利用應(yīng)用程序效率.每次盡量顯示小部分?jǐn)?shù)據(jù),這樣會(huì)加快頁(yè)面顯示速度。請(qǐng)小心使用混合緩存,請(qǐng)不要設(shè)置所有數(shù)據(jù)在緩存區(qū)中。
17.當(dāng)更新應(yīng)用程序時(shí)使用AppOffline.htm
我非常討厭asp.net默認(rèn)錯(cuò)誤消息.我是那么的開(kāi)心假如我再也看不到那些錯(cuò)誤消息.確定您的用戶也不要看到它.使用AppOffline.htm去替代它。
18.控件使用ControlState而不使用ViewState
19.使用finally方法回收資源
假如你在應(yīng)用中大量使用數(shù)據(jù)庫(kù)連接和訪問(wèn)文件,請(qǐng)確定在用完后關(guān)閉它們.
finally塊是程序中最后被執(zhí)行,因此在這里面的代碼會(huì)確寶一定會(huì)被執(zhí)行,關(guān)閉代碼一定要在這個(gè)方法塊中執(zhí)行
20.請(qǐng)嚴(yán)格按照以上方法執(zhí)行
- ASP.NET 高性能分頁(yè)代碼
- ASP.NET(C#) String, StringBuilder 與 StringWriter性能比較
- asp.net 程序性能優(yōu)化的七個(gè)方面 (c#(或vb.net)程序改進(jìn))
- ASP.NET Session會(huì)導(dǎo)致的性能問(wèn)題
- ASP.NET 提高首頁(yè)性能的十大做法
- ASP.NET性能優(yōu)化小結(jié)(ASP.NET&C#)
- 打造基于jQuery的高性能TreeView(asp.net)
- ASP.NET頁(yè)面優(yōu)化 性能提升8倍的方法
- 分享提高ASP.NET Web應(yīng)用性能的技巧
相關(guān)文章
asp.net中button控制先執(zhí)行js再執(zhí)行后臺(tái)程序的方法
這篇文章主要介紹了asp.net中button控制先執(zhí)行js再執(zhí)行后臺(tái)程序的方法,涉及button控件與js的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01asp.net(C#)跨域及跨域?qū)慍ookie問(wèn)題
在網(wǎng)站www.A.com下通過(guò)iframe或ajax調(diào)用www.B.com下的內(nèi)容時(shí),默認(rèn)情況下IE會(huì)阻止www.B.com寫任何Cookie2011-10-10asp.net上傳圖片并作處理水印與縮略圖的實(shí)例代碼
asp.net 上傳圖片并作處理(生成縮略圖 、在圖片上增加文字水印、在圖片上生成圖片水印)的實(shí)例代碼,經(jīng)過(guò)測(cè)試!2013-06-06MVC4制作網(wǎng)站教程第四章 部分欄目功能實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了MVC4制作網(wǎng)站教程,部分欄目功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08詳解Asp.Net Core 2.1+的視圖緩存(響應(yīng)緩存)
本篇文章給大家通過(guò)實(shí)例講述了Asp.Net Core 2.1+的視圖緩存(響應(yīng)緩存)的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的讀者們可以學(xué)習(xí)下。2018-03-03Asp.Net Core輕松學(xué)習(xí)系列之配置文件
這篇文章主要給大家介紹了關(guān)于Asp.Net Core輕松學(xué)習(xí)系列之配置文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11C#實(shí)現(xiàn)EXCEL數(shù)據(jù)到TXT文檔的轉(zhuǎn)換
C#實(shí)現(xiàn)EXCEL數(shù)據(jù)到TXT文檔的轉(zhuǎn)換,需要的朋友可以參考一下2013-02-02asp.net(C#)生成Code39條形碼實(shí)例 條碼槍可以掃描出
這篇文章主要介紹了asp.net(C#)生成Code39條形碼實(shí)例 條碼槍可以掃描出。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02