本文介绍了如何在NodeJ上创建具有2亿个元素的数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了进行一些基准测试,我尝试创建一个巨大的数组。代码很简单:

To do some benchmarking, I tried to create a huge array. The code was simple:

var hugeArray = [];
for (var i = 0; i < 2*1000*1000*100; i ++) {
    hugeArray.push(Math.ceil(Math.random()*100))
}
console.log(hugeArray.length);

使用2亿个元素运行它后,我得到致命错误:无效数组长度分配失败-JavaScript堆内存不足。拥有2000万个元素,效果很好,所以我认为我需要更改一些设置。

After I run it with 200 million elements, I get FATAL ERROR: invalid array length Allocation failed - JavaScript heap out of memory. With 20 million elements, this works well, so I assume I need to change some setting.

我正在使用具有8 GB RAM的MacOS,如果有帮助的话。

I am using MacOS with 8 GB of RAM, if that helps.

推荐答案

V8的堆大小限制为1 GB。因此,如果要增加它,请按照以下条件运行

V8's heap size is limited to 1 GB..So if you want to increase it run following

node --max-old-space-size = 8000 yourScript.js

希望这会有所帮助。

这篇关于如何在NodeJ上创建具有2亿个元素的数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 09:35