亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 程序性能優化的七個方面 (c#(或vb.net)程序改進)

2024-07-10 13:20:30
字體:
來源:轉載
供稿:網友
1、使用值類型的ToString方法
  在連接字符串時,經常使用"+"號直接將數字添加到字符串中。這種方法雖然簡單,也可以得到正確結果,但是由于涉及到不同的數據類型,數字需要通過裝箱操作轉化為引用類型才可以添加到字符串中。但是裝箱操作對性能影響較大,因為在進行這類處理時,將在托管堆中分配一個新的對象,原有的值復制到新創建的對象中。
  使用值類型的ToString方法可以避免裝箱操作,從而提高應用程序性能。
int num=1;
string str="go"+num.ToString();
2、運用StringBuilder類
  String類對象是不可改變的,對于String對象的重新賦值在本質上是重新創建了一個String對象并將新值賦予該對象,其方法ToString對性能的提高并非很顯著。
  在處理字符串時,最好使用StringBuilder類,其.NET 命名空間是System.Text。該類并非創建新的對象,而是通過Append,Remove,Insert等方法直接對字符串進行操作,通過ToString方法返回操作結果。
  其定義及操作語句如下所示:
int num;
System.Text.StringBuilder str = new System.Text.StringBuilder(); //創建字符串
str.Append(num.ToString()); //添加數值num
Response.Write(str.ToString); //顯示操作結果
3、使用 HttpServerUtility.Transfer 方法在同一應用程序的頁面間重定向
  采用 Server.Transfer 語法,在頁面中使用該方法可避免不必要的客戶端重定向(Response.Redirect)。
4、避免使用ArrayList。
因為任何對象添加到ArrayList都要封箱為System.Object類型,從ArrayList取出數據時,要拆箱回實際的類型。建議使用自定義的集合類型代替ArrayList。asp.net 2.0提供了一個新的類型,叫泛型,這是一個強類型,使用泛型集合就可以避免了封箱和拆箱的發生,提高了性能。
5、使用HashTale代替其他字典集合類型
(如StringDictionary,NameValueCollection,HybridCollection),存放少量數據的時候可以使用HashTable.
6、為字符串容器聲明常量,不要直接把字符封裝在雙引號" "里面。
//避免
MyObject obj = new MyObject();
obj.Status = "ACTIVE";
//推薦
const string C_STATUS = "ACTIVE";
MyObject obj = new MyObject();
obj.Status = C_STATUS;
7、不要用ToUpper(),ToLower()轉換字符串進行比較,用String.Compare代替,它可以忽略大小寫進行比較.
例:
const string C_VALUE = "COMPARE";
if (String.Compare(sVariable, C_VALUE, true) == 0)
{
Console.Write( "相同");
}
也可以用str == String.Empty或者str.Length == 0判斷是否為空。(注意判斷輸入數據的長度,可防止sql注入式攻擊)
將String對象的Length屬性與0比較是最快的方法,避免不必要的調用 ToUpper 或 ToLower 方法。
8、類型轉化Int32.TryParse()優于Int32.Parse()優于Convert.ToInt32()。
建議.NET1.1下用Int32.Parse();.NET2.0用Int32.TryParse()。
因為:
Convert.ToInt32 會把最終的解析工作代理給 Int32.Parse;
Int32.Parse 會把最終的解析工作代理給Number.ParseInt32;
Int32.TryParse 會把最終的解析工作代理給Number.TryParseInt32。
9、如果只是從XML對象讀取數據,用只讀的XPathDocument代替XMLDocument,可以提高性能
//避免
XmlDocument xmld = new XmlDocument();
xmld.LoadXml(sXML);
txtName.Text = xmld.SelectSingleNode( "/packet/child").InnerText;
//推薦
XPathDocument xmldContext = new XPathDocument(new StringReader(oContext.Value));
XPathNavigator xnav = xmldContext.CreateNavigator();
XPathNodeIterator xpNodeIter = xnav.Select( "packet/child");
iCount = xpNodeIter.Count;
xpNodeIter = xnav.SelectDescendants(XPathNodeType.Element, false);
while(xpNodeIter.MoveNext())
{
sCurrValues += xpNodeIter.Current.Value+ ",";
}
10、避免在循環體里聲明變量,應該在循環體外聲明變量,在循環體里初始化。
C#程序開發要遵循的一個基本原則就是避免不必要的對象創建
//避免
for(int i=0; i<10; i++)
{
SomeClass objSC = new SomeClass();
}
//推薦
SomeClass objSC = null;
for(int i=0; i <10; i++)
{
objSC = new SomeClass();
}
11、捕獲指定的異常,不要使用通用的System.Exception.
//避免
try
{
<some logic>
}
catch(Exception exc)
{
<Error handling>
}
//推薦
try
{
<some logic>
}
catch(System.NullReferenceException exc)
{
<Error handling>
}
catch(System.ArgumentOutOfRangeException exc)
{
<Error handling>
}
catch(System.InvalidCastException exc)
{
<Error handling>
}
12、使用Try...catch...finally時, 要在finally里釋放占用的資源如連接,文件流等
不然在Catch到錯誤后占用的資源不能釋放。
try
{}
catch
{}
finally
{
conntion.close();
}
13、不要用Exception控制程序流程
有些程序員可能會使用異常來實現一些流程控制。例如:
try{
result=100/num;
}
Catch(Exception e)
{
result=0;
}
但實際上,Exception是非常消耗系統性能的。除非必要,不應當使用異常控制來實現程序流程。上面的代碼應當寫為:
if(num!=0)
result=100/num;
else
result=0;
14、避免使用遞歸調用和嵌套循環,使用他們會嚴重影響性能,在不得不用的時候才使用。
15、禁用VB.net和Jscript動態數據類型
應當始終顯示地申明變量數據類型,這能夠節約程序的執行時間。以往,開發人員喜歡使用 Visual Basic、VBScript 和 JScript 的原因之一就是它們所謂“無類型”的性質。變量不需要顯式類型聲明,并能夠簡單地通過使用來創建它們。當從一個類型到另一個類型進行分配時,轉換將自動執行。不過,這種便利會大大損害應用程序的性能。
如:
為了獲得最佳的性能,當聲明 JScript .NET 變量時,請為其分配一個類型。例如,var A : String;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色在线观看免费视频| 亚洲第一网站免费视频| 久久久国产精品免费| 日韩电影免费在线观看中文字幕| 国产成人精品优优av| 久久久精品网站| 欧美国产精品日韩| 欧美电影免费观看网站| 日本在线精品视频| 日韩人在线观看| 亚洲午夜未删减在线观看| 亚洲天堂男人天堂女人天堂| 中文字幕欧美日韩va免费视频| 欧美激情第6页| 国产亚洲激情在线| 亚洲一区二区久久| 一区二区欧美激情| 久久精品精品电影网| 久久国产精品亚洲| 色无极影院亚洲| 国产精品视频久久久| 久久久久久18| 深夜福利亚洲导航| 在线视频国产日韩| 欧美性猛交xxxx乱大交极品| 亚洲成人av片在线观看| 91精品久久久久久久久久另类| 欧美精品免费看| 中文字幕亚洲综合久久筱田步美| 国产精品视频免费观看www| 日韩理论片久久| 欧美精品激情视频| 亚洲天堂av在线免费| 7777精品视频| 久久成人精品一区二区三区| 97视频人免费观看| 久久男人资源视频| 国产精品久久久久久久久久久不卡| 日韩美女在线观看| 精品亚洲一区二区三区四区五区| 国产日韩精品综合网站| 亚洲福利在线视频| 成人xvideos免费视频| 色综合色综合网色综合| 中文字幕亚洲天堂| 精品久久在线播放| 国产丝袜一区视频在线观看| 国产丝袜视频一区| 亚洲精品网站在线播放gif| 欧美日韩精品在线视频| 国产91成人在在线播放| 亚洲国产欧美自拍| 久久久久亚洲精品国产| 日韩av在线一区二区| 中文字幕在线看视频国产欧美在线看完整| 亚洲精品一区二区三区婷婷月| 法国裸体一区二区| 青青草原一区二区| 日韩精品在线视频美女| 欧美乱大交做爰xxxⅹ性3| 欧美一区二粉嫩精品国产一线天| 色噜噜狠狠狠综合曰曰曰| 欧美中文在线视频| 欧美日韩国产中文字幕| 国产精品爽黄69天堂a| 国产免费成人av| 中文字幕精品网| 国产精品pans私拍| 国产亚洲精品日韩| 亚洲美女性生活视频| 国产精品免费久久久久久| 欧美大秀在线观看| 66m—66摸成人免费视频| 中国日韩欧美久久久久久久久| 国产精品爽爽爽| 日韩欧美在线免费| 欧美日韩性生活视频| 7m精品福利视频导航| 免费av一区二区| 国产精品一区二区三区久久久| 欧美丰满少妇xxxx| 亚洲电影免费观看高清完整版在线| 国产69精品久久久久99| 精品欧美国产一区二区三区| 久久精品成人动漫| 欧美主播福利视频| 亚洲福利在线播放| 亚洲sss综合天堂久久| 国产亚洲欧洲高清一区| 亚洲欧美在线一区二区| 亚洲成色www8888| 91九色视频在线| 国产热re99久久6国产精品| 久久久噜噜噜久久| 国产一区二区三区在线视频| 精品欧美国产一区二区三区| 亚洲欧美成人网| 亚洲欧洲国产精品| 久久中文字幕在线视频| 91精品国产乱码久久久久久久久| 4438全国亚洲精品在线观看视频| 成人免费直播live| 欧美黄色性视频| 国产亚洲成av人片在线观看桃| 日韩电影视频免费| 久久精品国产欧美激情| 日韩精品免费综合视频在线播放| 68精品国产免费久久久久久婷婷| 色狠狠久久aa北条麻妃| 91国内免费在线视频| 日韩欧美在线网址| 欧美日韩在线观看视频| 国产精品久久久久久久久久新婚| 亚洲欧美日韩一区二区三区在线| 久久精品视频免费播放| 欧美老肥婆性猛交视频| 欧美大尺度激情区在线播放| 久久中文字幕视频| 亚洲国产精品yw在线观看| 亚洲a成v人在线观看| 欧美黑人xxx| 日韩av成人在线| 欧美激情久久久久久| 日韩中文字幕在线| 国产极品jizzhd欧美| 91久久精品美女高潮| 中文日韩在线视频| 最近2019中文字幕一页二页| 91综合免费在线| 亚洲综合社区网| 日韩经典中文字幕在线观看| 久久精品成人一区二区三区| 日韩亚洲欧美中文高清在线| 欧美日韩一区二区三区| 国产精品电影网| 欧美限制级电影在线观看| 久久91亚洲精品中文字幕| 日韩影视在线观看| 成人网在线视频| 91九色在线视频| 亚洲国产精品人人爽夜夜爽| 国产精品福利无圣光在线一区| 国内精品视频一区| 亚洲欧美色婷婷| 欧美日韩国产中文精品字幕自在自线| 国产剧情久久久久久| 欧美资源在线观看| 久久在线免费观看视频| 91精品久久久久久久久中文字幕| 免费不卡欧美自拍视频| 欧美壮男野外gaytube| 国产国语videosex另类| 成人国产亚洲精品a区天堂华泰| 成人在线国产精品| 欧美老女人xx| 成人欧美一区二区三区在线| 中文字幕亚洲欧美日韩在线不卡| 成人免费高清完整版在线观看| 中文字幕亚洲精品| 午夜精品视频在线| 日韩精品中文字幕有码专区| 欧美精品videofree1080p| 91精品国产91久久久久久最新| 国产精品扒开腿爽爽爽视频|