我想要t在JavaScript中创建一个大数组并编写以下代码,但由于OOM
而无法工作let N = 125000000;
let numbers = [];
for (let i = 0; i < N; i++) {
numbers[i] = Math.round(Math.random()*10000);
}
然后我写了"让数字= new Array(n(;"相反,它适用于N(125000000(,但与较大的N(200000000(不起作用。然后,我使用了UINT32Array,该array适用于更大的n。它的工作最高为n = 2^31-1。在[],新数组(size(,uint32array中,大小有限制吗?我猜最大尺寸o uint32array是2^31-1。我也想知道为什么新数组(N(的限制高于[]。谢谢
nodejs遵循通过V8 Engine实现的Ecmascript规范。
您可以安装的最大内部是4,294,967,295 = 42.9亿个元素。
您用完了内存,因为V8设置了内存限制,您可以通过使用" max of of stacs-size"参数来绕过此限制,例如:
节点 - 最大的空间大小= 1024 yourscript.js
其中1024为1GB,2048 2GB等等。