400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

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

这篇文章主要介绍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#如何实现减少垃圾回收压力的字符串操作”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


名称栏目:C#如何实现减少垃圾回收压力的字符串操作
网站路径:http://www.bluegullmedia.com/article/josecs.html

其他资讯

让你的专属顾问为你服务

0.0442s