使用StringBuilder类的Append方法和使用"+"运算符的Concatenation有什么区别?
在连接两个字符串时,Append方法以什么方式比"+"运算符更有效或更快?
首先,String和StringBuilder属于不同类别.
Stringclass表示不可变类型,但StringBuilder类表示可变类型.
当您使用+concatanate字符串时,它使用String.Concat方法.每次都会返回一个新的字符串对象.
StringBuilder.Appendmethod附加指定字符串的副本.它不会返回一个新字符串,它会更改原始字符串.
为了有效,你应该阅读Jeff的文章 The Sad Tragedy of Micro-Optimization Theater
它.只是.不.物!
我们已经知道这些操作都不会在循环中执行,因此我们可以排除天真字符串连接的残酷性能特征.剩下的就是微优化,只要你开始担心微小的优化,你就已经走错了路.
哦,你不相信我?可悲的是,我自己并不相信,这就是我首先被吸引到这里的原因.以下是我的结果 - 在双核3.5 GHz Core 2 Duo上进行100,000次迭代.
1: Simple Concatenation 606 ms
2: String.Format 665 ms
3: string.Concat 587 ms
4: String.Replace 979 ms
5: StringBuilder 588 ms
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
871 次 |
| 最近记录: |