成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

可能引發性能問題的幾個代碼寫法總結

開發 后端
本文總結了可能引發性能問題的幾個代碼寫法,如tryparse的使用,IndexOf中單雙引號的使用,關閉數據庫連接等等。如果你的代碼不幸也占了那么一、兩個,那么修改并對比一下性能試試看。

可能引發性能問題的幾個代碼寫法,看看你占哪一個.

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"] 是非數值型的,將引發一個異常,引發異常的開銷是非常巨大的,而后一種則不會引發任何異常。

2.string.IndexOf()

你正在這樣寫嗎?

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

其實對于單字符的查找,這樣寫會更好

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

有人會問如果我要找多個字符呢,那可以試試下面的

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

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

3. RegexOptions.Compiled

如果你正在使用正則并且用到了這個參數,那請你慎重,根據個人經驗使用這個參數在訪問量比較大的情況下可能會引發性能問題,比如cpu偏高。如果你表示懷疑,可以嘗試比較使用和不用這個參數的情況下哪個性能會更好。

4.忘記關閉數據庫連接

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

5.頻繁的Response.Write()

 你正在這樣做嗎?

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

此種寫法頻繁調用Response.Write() ,根據經驗,這是相當的耗cpu,改成下面的試試

  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. 不必要的重復操作

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

上面的代碼估計誰都看的出來有什么不好,那下面這個代碼呢

  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. }  

如果你的代碼不幸也占了那么一、兩個,那么修改并對比一下性能試試看,如果你很幸運的一個也沒占,那么恭喜你,你的程序性能應該還不錯。

【編輯推薦】

  1. JSP頁面Tomcat提高性能之王道
  2. Servlet和JSP性能優化經驗談
  3. 淺談編寫高性能的Javascript代碼
  4. J2EE運行環境性能大優化
  5. 提高EJB性能十大技巧
責任編輯:yangsai 來源: 博客園
相關推薦

2019-01-07 14:36:36

Go系統開源庫

2010-01-07 11:21:25

2009-04-24 10:49:57

Oracle性能優化錯誤

2011-05-20 10:05:13

Oracle性能優化

2011-08-23 08:56:30

2014-10-31 10:04:57

程序員代碼

2022-09-03 15:12:40

AndroidJDK 11升級

2020-11-11 10:00:13

NAT性能內核

2023-11-16 17:12:33

數據庫oracle

2024-12-26 09:15:28

2023-11-22 15:34:41

oracleSQL數據庫

2013-06-20 09:59:12

Javascriptvar

2017-11-06 14:33:54

Web開發服務器網絡

2015-11-05 09:02:05

Java代碼性能優化

2019-12-25 09:49:12

WebKitWindowsChrome

2013-04-24 11:33:31

Android開發Android有用習慣

2021-02-22 07:58:47

內存程序變量

2022-09-08 09:45:12

微軟Windows夏令時

2021-05-11 11:11:00

漏洞網絡安全網絡攻擊

2012-02-08 09:35:23

思科UCS系列B440刀片
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品欧美一区二区精品久久久 | 日韩在线观看网站 | 精品欧美在线观看 | 久久精品一区 | 精品自拍视频 | 国产美女在线免费观看 | 一级毛片在线看 | www.国产.com| 精品久久久久久久久久 | 美女在线视频一区二区三区 | 精品亚洲一区二区 | 夜夜av| 一久久久| 成人精品视频在线观看 | 精品美女在线观看 | 国产福利91精品一区二区三区 | 日韩视频在线观看一区二区 | 国产区精品视频 | 色视频一区二区 | 日韩欧美一级精品久久 | 日韩一区二区在线视频 | 午夜视频免费在线观看 | 国产精品国产精品 | 日韩在线观看 | 亚洲欧美日韩国产综合 | 日韩中文一区 | 久久不卡 | 精品视频亚洲 | 欧美日韩在线视频一区 | 91精品在线播放 | 中文字幕日韩专区 | 精品久久久一区二区 | 91精品国产综合久久精品 | 亚洲+变态+欧美+另类+精品 | 一级黄色片毛片 | 91麻豆精品国产91久久久资源速度 | 日韩精品成人在线 | 亚洲精品中文在线观看 | 国产7777| 欧美国产激情 | 欧美美女爱爱 |