javascript - 连接消耗大量内存,我该如何优化它?

标签 javascript concatenation ram

串联会消耗大量内存。如果我们考虑该字符占用约 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/

相关文章:

file - 如何在 RAM 有限的 UNIX/LINUX 中读取大文件?

arrays - 随机存取存储器如何工作?为什么是恒定时间随机访问?

c++ - 如何在 C++ 中获取当前的 CPU 和 RAM 使用情况?

javascript - Webpack + @babel/preset-env 与动态导入... package.module 不被尊重?

javascript - 使用 SVG 的圆环图

mysql - 从列具有特定文本的表中选择列的总和

MySQL:CONCAT/SUBSTRING:这不起作用,因为我使用的是 int 变量吗?

javascript - NodeJS 中的访问计数器

javascript - 在 chrome 扩展中加载页面之前修改 CSS?

PHP 连接变为 NULL