C#如何实现减少垃圾回收压力的字符串操作

发布时间:2021-08-26 11:42:48 作者:小新
来源:亿速云 阅读:148

这篇文章主要介绍C#如何实现减少垃圾回收压力的字符串操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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进行字符串拼接操作

//不建议: 
string s = null; 
for (int i = 0; i < 10000; i++) 
{ 
s += i; 
} 
//建议: 
StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < 10000; i++) 
{ 
sb.Append(i); 
} 
string t = sb.ToString();

C#如何实现减少垃圾回收压力的字符串操作

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代码,会更早释放内存 
}

以上是“C#如何实现减少垃圾回收压力的字符串操作”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. 关于如果减少勒索病毒的侵扰:
  2. C#——字符串操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:python3如何下载抖音视频

下一篇:Python中迭代器的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》