ASP.NET性能優(yōu)化八條建議
A、盡量減少數(shù)據(jù)庫(kù)連接,并充分利用每次數(shù)據(jù)庫(kù)連接:連接的創(chuàng)建、打開(kāi)和關(guān)閉是有開(kāi)銷(xiāo)的??梢允褂眠B接池
B、合理使用存儲(chǔ)過(guò)程:存儲(chǔ)過(guò)程是存儲(chǔ)在服務(wù)器端的一組預(yù)編譯的SQL。使用存儲(chǔ)過(guò)程可以避免對(duì)SQL的多次編譯,后續(xù)查詢(xún)可以復(fù)用之前的執(zhí)行計(jì)劃。另外存儲(chǔ)過(guò)程可以減少SQL語(yǔ)句網(wǎng)絡(luò)傳輸開(kāi)銷(xiāo)
C、優(yōu)化SQL語(yǔ)句:這個(gè)就太多了,如合理使用索引、視圖,避免復(fù)雜子查詢(xún)
2、字符串操作性能優(yōu)化
A、使用值類(lèi)型的ToString()方法
對(duì)不同類(lèi)型進(jìn)行 + 連接時(shí),會(huì)發(fā)生裝箱操作轉(zhuǎn)化為引用類(lèi)型再添加到字符串中。裝箱操作會(huì)在托管堆中分配一個(gè)新對(duì)象,將原有的值復(fù)制到新對(duì)象中,代價(jià)很高。使用ToString()方法可以避免裝箱,從而提高性能
B、利用StringBuilder類(lèi)
3、禁用調(diào)試模式
4、只要合適,盡量緩存數(shù)據(jù)和頁(yè)面輸出
5、不要依賴(lài)代碼中的異常來(lái)控制程序正常流程
異常的開(kāi)銷(xiāo)是很大的。所以慎用異常。
6、使用Page.IsPostBack避免往返過(guò)程的不必要處理
void Page_Load(Object sender, EventArgs e) // Set up a connection and command
{
if (!Page.IsPostBack) // 第一次加載時(shí)才填充數(shù)據(jù)
{
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}
7、如果不使用會(huì)話(huà)狀態(tài),可以禁用它或者設(shè)置只讀
A、若要禁用頁(yè)的會(huì)話(huà)狀態(tài),請(qǐng)將 @ Page 指令中的 EnableSessionState 屬性設(shè)置為false。例如:
<%@ Page EnableSessionState="false" %>
B、注意如果頁(yè)需要訪(fǎng)問(wèn)會(huì)話(huà)變量,但不打算創(chuàng)建或修改它們,則將 @ Page 指令中的 EnableSessionState 屬性設(shè)置為 ReadOnly。
8、利用成熟的工具進(jìn)行性能測(cè)試
相關(guān)文章
asp.net TemplateField模板中的Bind方法和Eval方法
在TemplateField模板中為了能夠有限制的或者取出數(shù)據(jù)庫(kù)中某列的值時(shí),可以用Bind和Eval方法來(lái)實(shí)現(xiàn)。以下是Bind方法的格式,Eval的格式也是和Bind一樣的。 Bind("列的名稱(chēng)","顯示的格式文")2009-06-06教你30分鐘通過(guò)Kong實(shí)現(xiàn).NET網(wǎng)關(guān)
Kong是一個(gè)Openrestry程序,而Openrestry運(yùn)行在Nginx上,用Lua擴(kuò)展了nginx。所以可以認(rèn)為Kong = Openrestry + nginx + lua,這篇文章主要介紹了30分鐘通過(guò)Kong實(shí)現(xiàn).NET網(wǎng)關(guān),需要的朋友可以參考下2021-11-11.net開(kāi)發(fā)中幾個(gè)重要的認(rèn)識(shí)誤區(qū)小結(jié)
.net如今已經(jīng)很流行,成為趕時(shí)髦的程序員的首選。但是,大量剛剛接觸.net的程序員的確存在一定的認(rèn)識(shí)誤區(qū),這里先介紹一部分。2010-04-04Asp.net實(shí)現(xiàn)選擇性的保留DataTable中的列
選擇性的保留DataTable中的列(移除列/保留列不移除/移除不需要的列),很多新手朋友們都想實(shí)現(xiàn)這樣的功能,本文總結(jié)了一些可行方法,感興趣的朋友可以了解下哦2013-01-01asp.net repeater實(shí)現(xiàn)批量刪除時(shí)注冊(cè)多選框id到客戶(hù)端
repeater批量刪除時(shí)注冊(cè)多選框id到客戶(hù)端的實(shí)現(xiàn)代碼2008-11-11ASP.NET使用SignalR2實(shí)現(xiàn)服務(wù)器廣播
這篇文章介紹了ASP.NET使用SignalR2實(shí)現(xiàn)服務(wù)器廣播的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05詳解CentOS 7.4下如何部署Asp.Net Core結(jié)合consul
這篇文章主要介紹了詳解CentOS 7.4下如何部署Asp.Net Core結(jié)合consul,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06