C# 效能最佳化細節
1、使用string.Empty給一個空字串變數賦初始值
string filter=“”;//不建议 string filter=string.Empty; //建议
3、避免不必要的字串ToUpper、ToLower類操作
3、避免不必要的字串ToUpper、ToLower類操作
String.Compare可實作忽略字串大小寫//不推荐的写法
if(s1.ToUpper()==s2.ToUpper()) …;
//推荐的写法
if(String.Compare( s1, s2, true ) == 0) …;
如果要建構一個較長的字串,尤其是拼接超過10次時(經驗值),應使用StringBuilder做字串拼接操作。
[object Object]
5、建立StringBuilder應指定初始大小
預設的初始大小為16,一旦超過即Resize增加一次即需要壓力。建議根據經驗值為其指定初始大小。
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10; i++) { sb.Append(i); } string s = sb.ToString(); //建议修改为 StringBuilder sb = new StringBuilder(256); for (int i = 0; i < 10; i++) { sb.Append(i); } string s = sb.ToString();
6、避免濫用StringBuilder
, str4),效率反而高於StringBuilder。 String.Concat會一次性確定字串長度, StringBuilder需要做Resize,適用於多次產生string物件的情況。
7、直接設定.Length=0來初始化StringBuilder
來初始化速度最快。
StringBuiler sb = new StringBuilder(256); ...... sb.Remove(0, sb.Length); //不建议 sb.Length = 0; //建议
8、不要使用.Length=0來釋放StringBuilder佔用的記憶體
以上就是C# 字串操作--減少垃圾回收壓力的內容,更多相關內容請關注PHP中文網(www.php.cn)!