C#减少垃圾回收压力的字符串操作详解
发布时间:2020-12-15 05:43:57 所属栏目:百科 来源:网络整理
导读:C# 性能优化细节 1、使用string.Empty给一个空字符串变量赋初始值 String.Empty是一个指代,而””是具体的实现 string filter=“”;//不建议 string filter=string.Empty; //建议 2、使用str.Length == 0做空串比较 最快的方法:if (str.Length == 0) 其次
C# 性能优化细节 1、使用string.Empty给一个空字符串变量赋初始值
string filter=“”;//不建议 string filter=string.Empty; //建议 2、使用str.Length == 0做空串比较
3、避免不必要的字符串ToUpper、ToLower类操作
//不推荐的写法if(s1.ToUpper()==s2.ToUpper()) …;//推荐的写法if(String.Compare( s1,s2,true ) == 0) …; 4、巧用StringBuilder进行字符串拼接操作
//不建议: 5、创建StringBuilder应指定初始大小
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
7、通过直接设置.Length=0来初始化StringBuilder
StringBuiler sb = new StringBuilder(256); ...... sb.Remove(0,sb.Length); //不建议 sb.Length = 0; //建议 8、不要使用.Length=0来释放StringBuilder占用的内存 static void test() { StringBuilder sb = new StringBuilder(256); for (int i = 0; i < 100; i++) { sb.Append(i); } string t = sb.ToString(); ……//其他不使用变量sb的代码段 sb.Length = 0; //去掉该句手工清空sb代码,会更早释放内存 }
您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |