|
|
1
20
我遵循的规则是- 当编译时连接数未知时,请使用StringBuilder。 因此,在您的例子中,每个StringBuilder只附加了几次,然后就被丢弃了。这与类似的事情并不完全相同
使用StringBuilder将显著提高性能,因为否则您将不断分配新内存。 |
|
|
2
18
我肯定我有另一个答案,我刚刚发布了一个 link to my article 然后是总结,但我们再来一次。
|
|
|
3
6
有时候值得一看 documentation :
在您的示例中,每个输出字符串只有一个串联,因此StringBuilder不会为您带来任何好处。如果要添加到,则应使用StringBuilder 一串 多次,例如:
|
|
|
4
2
我的经验法则很简单。
根据我的经验,表达方式如下:
比以下内容更容易书写和理解:
另一方面,当需要在时间(程序运行时)或空间(由来自代码不同部分的值组成)上累积字符串时,如果无法将其作为单行表达式写入,则StringBuilder可以避免以下开销(时间和内存波动):
|
|
|
5
1
从…起 MSDN :
我想答案是“视情况而定”——如果你在一个循环中连接了超过几个迭代,那么StringBuilder几乎总能提供更好的性能,但唯一确定的方法是实际分析。 |
|
6
1
这方面有一篇有趣的文章在 Coding Horror . Jeff在双核3.5 GHz core 2 Duo上进行了100000次迭代,得到了以下结果:
|
|
7
1
从…起 Dot Net Perls 何时使用StringBuilder? StringBuilder完全是一种优化,除了内部实现之外,它对string Concat没有任何逻辑上的改进。也就是说,在高性能应用程序和网站中正确使用它是至关重要的。 有时,使用4次或更少迭代的小循环和简单的字符串Concats是可以的。然而,在边缘情况下,这可能是灾难性的。使用StringBuilder规划边缘案例。 |