Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的最大数组大小是多少?使用哪些数组_Javascript_Node.js - Fatal编程技术网

Javascript中的最大数组大小是多少?使用哪些数组

Javascript中的最大数组大小是多少?使用哪些数组,javascript,node.js,Javascript,Node.js,我不想用Javascript创建一个大数组,并编写了以下代码,但由于OOM的原因,它无法工作 let N = 125000000; let numbers = []; for (let i = 0; i < N; i++) { numbers[i] = Math.round(Math.random()*10000); } 设N=125000000; 让数字=[]; for(设i=0;i

我不想用Javascript创建一个大数组,并编写了以下代码,但由于OOM的原因,它无法工作

let N = 125000000;
let numbers = [];
for (let i = 0; i < N; i++) {
    numbers[i] = Math.round(Math.random()*10000);
}
设N=125000000;
让数字=[];
for(设i=0;i
然后我写了“let numbers=new Array(N);”,它适用于N(125000000),但不适用于较大的N(200000000)。然后我使用了uint32阵列,它适用于更大的N。它适用于N=2^31-1。 []中的大小、新数组(大小)、Javascript中的UINT32数组是否有任何限制?我想UINT32阵列的最大尺寸是2^31-1。我还想知道为什么新数组(N)的限制高于[]。 谢谢

NodeJS遵循通过引擎实现的规范

您最多可以容纳4294967295=42.9亿个元素

内存不足是因为V8设置了内存限制,您可以通过使用“max old space size”参数调用节点来绕过此限制,如下所示:

节点--最大旧空间大小=1024 yourscript.js


其中1024是1GB,2048是2GB,依此类推。

我猜如果您将数字放入数组文字(
[]
)或数组对象(
新数组(大小)
)它们存储为有符号64位浮点数
-
64位
,如果将数字放入
uint32数组
,它们存储为无符号32位整数-
32位
。因此,RAM的使用量是第一种情况的两倍。