串联会消耗大量内存。如果我们考虑该字符占用约 2 个字节,那么生成的代码行应占用约 20 MB,但当下面显示的代码正常运行时,该页面消耗约 1GB。尝试使用 Join,或执行操作 s + = 'q';在功能等方面,没有任何帮助。我该如何优化,例如在“.net”中有一个 StringBuilder?
var i = 0
var s = "q";
while (i <10000000) {
s + = 'q';
i ++;
}
附言
let str = Array (10000000) .fill (`g`) .join``;
或
'g'.repeat (10000000)
不合适,需要拼接。
最佳答案
您仍然可以使用 join
- 您不需要使用 fill
一次性创建整个数组:
var i = 0;
var a = [];
while (i <10000000) {
a[i] = 'q';
i++;
}
var s = a.join('');
这样您就可以将需要的任何字符(或更大的字符串)“连接”到数组的元素中,然后最终在一次操作中将它们全部连接起来。
关于javascript - 连接消耗大量内存,我该如何优化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53501009/