【发布时间】:2011-11-10 01:42:39
【问题描述】:
今天看了this thread关于字符串拼接的速度。
令人惊讶的是,字符串连接是赢家:
结果与我想的相反。此外,还有很多关于这个的文章是相反的,比如this。
我可以猜到浏览器在最新版本上被优化为字符串concat,但是他们是怎么做到的呢?我们能说在连接字符串时使用+ 更好吗?
更新
因此,在现代浏览器中,字符串连接已经过优化,因此当您想要连接字符串时,使用+ 符号比使用join 更快。
但是@Arthur pointed out join 如果你真的想用分隔符加入字符串的话会更快。
更新 - 2020 年
Chrome:数组join几乎是2 times faster是字符串连接+
见:https://stackoverflow.com/a/54970240/984471
作为说明:
- 如果有
large strings,数组join会更好 - 如果我们需要在最终输出中生成
several small strings,最好使用字符串 concat+,否则使用 Array 将需要在最后进行多次 Array 到 String 的转换,这会导致性能过载。
【问题讨论】:
-
This code 应该产生 500 TB 的垃圾,但它在 200 毫秒内运行。我认为他们只是为一个字符串分配了更多的空间,当你向它添加一个短字符串时,它通常适合一个额外的空间。
标签: javascript performance string-concatenation