Javascript中的最大数组大小是多少以及要使用的数组

时间:2019-05-27 17:31:46

标签: javascript node.js

我不想用Java语言创建一个大型数组并编写以下代码,但由于OOM而无法正常工作

print(Constants.name)
result: "Name"

然后我写了“ let number = new Array(N);”相反,它适用于N(125000000),但不适用于较大的N(200000000)。然后,我使用了Uint32Array,它可以处理更大的N。它可以工作到N = 2 ^ 31-1。 Java中的[],new Array(size)和Uint32Array是否有大小限制?我猜Oint32Array的最大大小是2 ^ 31-1。我也想知道为什么新Array(N)的限制比[]高。 谢谢

1 个答案:

答案 0 :(得分:1)

NodeJS遵循ECMAScript规范,该规范是通过V8引擎实现的。

您可以容纳的最大值为4,294,967,295 = 42.9亿个元素。

由于V8设置了内存限制,因此内存不足,可以通过使用'max-old-space-size'参数调用Node来绕过此限制,如下所示:

  

node --max-old-space-size = 1024 yourscript.js

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