为什么字符连接时候为用StringBuilder不用string
2015-02-15 15:40
253 查看
http://www.cnblogs.com/sz886/p/4292954.html
net字符串连接的时候我们经常会使用StringBuilder里面的append,还有我们经常使用string的+=来连接字符串,我们经常听说他们两个之间有比较大有性能差别,但是具体是怎样的,大家都没有去测试过,所以大家一般也会用+=""去做字符连接,也不会用StringBuilder因为感觉用StringBuilder比较麻烦,带着这个问题,独占网络做了一个小的性能测试,下面是我们测试的方法代码还有运行的结果信息。
代码1 StringBuilder bur = new StringBuilder(); for (int i = 0; i < 200000; i++) { bur.Append(i); }
代码2 string showinfo = string.Empty; for (
ab71
int i = 0; i < 200000; i++) { showinfo += i; }
通过测试我们发现代码1基本上是在0.1秒运行完成,代码2运行了3分多钟,测试发现这个性能差别也是非常多倍,所以独占网络独占.net开发人员在使用字符连接的时候最好使用StringBuilder性能会好上许多,为了服务器压力小,为了运行速度快,为了书写方便,所以在字符串连接的时候使用StringBuilder。
最后补充一个问题,就是 AppendFormat方法是不能单独加入一个{或者},因为他们两个必需成对存在。
net字符串连接的时候我们经常会使用StringBuilder里面的append,还有我们经常使用string的+=来连接字符串,我们经常听说他们两个之间有比较大有性能差别,但是具体是怎样的,大家都没有去测试过,所以大家一般也会用+=""去做字符连接,也不会用StringBuilder因为感觉用StringBuilder比较麻烦,带着这个问题,独占网络做了一个小的性能测试,下面是我们测试的方法代码还有运行的结果信息。
代码1 StringBuilder bur = new StringBuilder(); for (int i = 0; i < 200000; i++) { bur.Append(i); }
代码2 string showinfo = string.Empty; for (
ab71
int i = 0; i < 200000; i++) { showinfo += i; }
通过测试我们发现代码1基本上是在0.1秒运行完成,代码2运行了3分多钟,测试发现这个性能差别也是非常多倍,所以独占网络独占.net开发人员在使用字符连接的时候最好使用StringBuilder性能会好上许多,为了服务器压力小,为了运行速度快,为了书写方便,所以在字符串连接的时候使用StringBuilder。
最后补充一个问题,就是 AppendFormat方法是不能单独加入一个{或者},因为他们两个必需成对存在。
相关文章推荐
- java 字符串拼接为什么要用 StringBuilder 而不直接用 String 相加连接
- 字符串分割的时候用StringUtils.split()方法代替string自带的split,特殊字符不用转义
- StringBuilder等字符连接的性能分析(Concatenating Strings Efficiently)
- 为什么连接字符串一定要用StringBuilder(介绍CLR Profiler)
- 【java之字符串常量】String,StringBuffer与StringBuilder的区别
- java StringBuffer,StringBuilder,String自身连接效率对比
- 为什么StringBuilder比string效率高
- String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
- 教你50招提升ASP.NET性能(二十三):StringBuilder不适用于所有字符串连接的场景;String.Join可能是
- 字符指针输出值的时候不用间接访问运算符就能输出字符串的原因(整理)
- 去除除服串中的某些字符,不用String内置方法
- 为什么连接字符串一定要用StringBuilder(介绍CLR Profiler)
- String和StringBuilder进行大量字符串连接操作时间对比测试
- C# String操作(字符重复出现,截取字符,连接字符)
- 为什么连接时候可以直接调用储存过程,而没有事先声明
- (我的SQL已经打开了) C#.NET为什么在配置数据源的时候连接不上
- 为什么PPC连接flash的时候地址线和数据线都反着接?
- 为什么不用String而用StringBuffer
- String,StringBuffer与StringBuilder的区别以及String为什么是不可变的?
- 6-2-1 字符串-字符串变量String-创建字符串变量-初始化字符串变量-字符串连接-输入字符串(单词、行)-对象变量的赋值-比较两个字符串是否同一个-比较两个字符串内容是否相同