我不想用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)的限制比[]高。 谢谢
答案 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,依此类推。