日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
可能引發(fā)性能問題的幾個(gè)代碼寫法總結(jié)

可能引發(fā)性能問題的幾個(gè)代碼寫法,看看你占哪一個(gè).

創(chuàng)新互聯(lián)專注于連江企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。連江網(wǎng)站建設(shè)公司,為連江等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

1. int.Parse() VS int.TryParse()

你是不是正在這樣寫

 
 
 
  1. int id = 0;  
  2. try{ id = int.Parse(Request["id"]); }  
  3. catch{ id = 0; } 

如果是可以這樣試試

 
 
 
  1. int id = 0;  
  2. int.TryParse(Request["id"], out id); 

前一種寫法,一旦 Request["id"] 是非數(shù)值型的,將引發(fā)一個(gè)異常,引發(fā)異常的開銷是非常巨大的,而后一種則不會(huì)引發(fā)任何異常。

2.string.IndexOf()

你正在這樣寫嗎?

 
 
 
  1. string s = "aaa,bb";  
  2. int pos = s.IndexOf(","); 

其實(shí)對(duì)于單字符的查找,這樣寫會(huì)更好

 
 
 
  1. string s = "aaa,bb";  
  2. int pos = s.IndexOf(',');  

有人會(huì)問如果我要找多個(gè)字符呢,那可以試試下面的

 
 
 
  1. string s = "aaa,bb";  
  2. int pos = s.IndexOf("bb", StringComparison.OrdinalIgnoreCase);  

至于 StringComparison 的具體用法可以google或者baidu得到。

3. RegexOptions.Compiled

如果你正在使用正則并且用到了這個(gè)參數(shù),那請(qǐng)你慎重,根據(jù)個(gè)人經(jīng)驗(yàn)使用這個(gè)參數(shù)在訪問量比較大的情況下可能會(huì)引發(fā)性能問題,比如cpu偏高。如果你表示懷疑,可以嘗試比較使用和不用這個(gè)參數(shù)的情況下哪個(gè)性能會(huì)更好。

4.忘記關(guān)閉數(shù)據(jù)庫連接

數(shù)據(jù)庫連接是非常好資源的,所以從打開到關(guān)閉應(yīng)該越短越好。想看看有沒有忘記關(guān)閉,可以通過性能監(jiān)視器的 .net Data provider for SqlClient ( 假設(shè)你用的是sqlserver ) 來查看,具體的參數(shù)說明可以通過google和baidu得到。

5.頻繁的Response.Write()

 你正在這樣做嗎?

 
 
 
  1. Response.Write("這是第1行.< br/>");  
  2. Response.Write("這是第2行.< br/>");  
  3. Response.Write("這是第3行.< br/>"); 

此種寫法頻繁調(diào)用Response.Write() ,根據(jù)經(jīng)驗(yàn),這是相當(dāng)?shù)暮腸pu,改成下面的試試

 
 
 
  1. StringBuilder sb = new StringBuilder();  
  2. sb.Append("這是第1行.< br/>");  
  3. sb.Append("這是第2行.< br/>");  
  4. sb.Append("這是第3行.< br/>");  
  5.  
  6. Response.Write(sb.ToString());  

6. 不必要的重復(fù)操作

 
 
 
  1. List< TopicInfo> list = new List< TopicInfo>();  
  2.  
  3. //從數(shù)據(jù)庫得到數(shù)據(jù)  
  4. list = GetDataFromDB();  
  5. for(int i = 0;i <  list.Count; i++ )  
  6. {  
  7.     TopicInfo item = list[i];  
  8.       
  9.       
  10. }  

上面的代碼估計(jì)誰都看的出來有什么不好,那下面這個(gè)代碼呢

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. using System.Text.RegularExpressions;  
  6. using System.Web;  
  7.  
  8. public class UrlUBB  
  9. {  
  10.  
  11.         /// < summary>  
  12.         /// 替換UBB里面的url  
  13.         /// < /summary>  
  14.         /// < param name="content">< /param>  
  15.         /// < returns>< /returns>  
  16.         public static string RegularUrl(string content)  
  17.         {  
  18.             if (string.IsNullOrEmpty(content))  
  19.                 return string.Empty;  
  20.  
  21.             if (content.IndexOf(@"(url=", StringComparison.OrdinalIgnoreCase) == -1 || content.IndexOf(@"(/url)", StringComparison.OrdinalIgnoreCase) == -1)  
  22.                 return content;  
  23.  
  24.             Regex reg = new Regex(@"\(url=(?< url>.[^\)]*)\)(?< name>.[^\(]*)\(/url\)");  
  25.  
  26.             string url = string.Empty;  
  27.             string name = string.Empty;  
  28.             string href = string.Empty;  
  29.  
  30.             MatchCollection matches = reg.Matches(content);  
  31.             foreach (Match m in matches)  
  32.             {  
  33.                 if (m.Success)  
  34.                 {  
  35.                     url = regexUrl(m.Groups["url"].ToString());  
  36.                     name = m.Groups["name"].ToString();  
  37.                     href = string.Format("< a href=\"redirect.aspx?goto={0}\">{1}< /a>", url, name);  
  38.                     content = content.Replace(m.ToString(), href);  
  39.                 }  
  40.             }  
  41.             return content;  
  42.     }  
  43. }  

你是否考慮過這樣的寫法

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. using System.Text.RegularExpressions;  
  6. using System.Web;  
  7.  
  8. public class UrlUBB  
  9. {  
  10.         private static Regex reg = new Regex(@"\(url=(?< url>.[^\)]*)\)(?< name>.[^\(]*)\(/url\)");  
  11.  
  12.         /// < summary>  
  13.         /// 替換UBB里面的url  
  14.         /// < /summary>  
  15.         /// < param name="content">< /param>  
  16.         /// < returns>< /returns>  
  17.         public static string RegularUrl(string content)  
  18.         {  
  19.             if (string.IsNullOrEmpty(content))  
  20.                 return string.Empty;  
  21.  
  22.             if (content.IndexOf(@"(url=", StringComparison.OrdinalIgnoreCase) == -1 || content.IndexOf(@"(/url)", StringComparison.OrdinalIgnoreCase) == -1)  
  23.                 return content;  
  24.  
  25.  
  26.             string url = string.Empty;  
  27.             string name = string.Empty;  
  28.             string href = string.Empty;  
  29.  
  30.             MatchCollection matches = reg.Matches(content);  
  31.             foreach (Match m in matches)  
  32.             {  
  33.                 if (m.Success)  
  34.                 {  
  35.                     url = regexUrl(m.Groups["url"].ToString());  
  36.                     name = m.Groups["name"].ToString();  
  37.                     href = string.Format("< a href=\"redirect.aspx?goto={0}\">{1}< /a>", url, name);  
  38.                     content = content.Replace(m.ToString(), href);  
  39.                 }  
  40.             }  
  41.             return content;  
  42.     }  
  43. }  

如果你的代碼不幸也占了那么一、兩個(gè),那么修改并對(duì)比一下性能試試看,如果你很幸運(yùn)的一個(gè)也沒占,那么恭喜你,你的程序性能應(yīng)該還不錯(cuò)。

【編輯推薦】

  1. JSP頁面Tomcat提高性能之王道
  2. Servlet和JSP性能優(yōu)化經(jīng)驗(yàn)談
  3. 淺談編寫高性能的Javascript代碼
  4. J2EE運(yùn)行環(huán)境性能大優(yōu)化
  5. 提高EJB性能十大技巧

當(dāng)前名稱:可能引發(fā)性能問題的幾個(gè)代碼寫法總結(jié)
文章轉(zhuǎn)載:http://www.5511xx.com/article/dhcgjdp.html