|
|
1
88
简短的回答:这取决于。
如果你已经有一个字符串数组要连接在一起(用分隔符),
如果你
不要
预先将字符串作为数组,它是
可能
使用更快
编辑:当我在家的时候,我会写一个尽可能痛苦的基准测试
|
|
2
29
这是我的测试装置,使用
(更新为
(更新为2048*64*150)
启用OptimizeForTesting后:
|
|
|
3
17
我创建了两种测试方法来比较它们:
将阵列的大小增加到
结果是可重复的(几乎;由不同的随机值引起的微小波动)。显然
这是我用于测试的代码:
|
|
|
4
8
除非1%的差异在整个程序运行所需的时间方面变得显著,否则这看起来像是微观优化。我会编写最可读/最容易理解的代码,而不用担心1%的性能差异。 |
|
|
5
-1
对。如果你做了几次以上的连接,它将是 很多 更快。 当你执行string.join时,运行时必须:
如果进行两次连接,则必须复制数据两次,依此类推。 StringBuilder会分配一个缓冲区作为备用空间,这样就可以在不复制原始字符串的情况下追加数据。由于缓冲区中还有剩余空间,追加的字符串可以直接写入缓冲区。 然后,它只需在末尾复制整个字符串一次。 |
|
|
6
-3
|