eii*_*000 5 javascript node.js
我想在 Javascript 中创建一个大数组并编写了以下代码,但由于 OOM 而不起作用
let N = 125000000;
let numbers = [];
for (let i = 0; i < N; i++) {
numbers[i] = Math.round(Math.random()*10000);
}
Run Code Online (Sandbox Code Playgroud)
然后我写了“让数字=新数组(N);” 相反,它适用于 N (125000000),但不适用于更大的 N (200000000)。然后我使用了 Uint32Array,它适用于更大的 N。它最多可达 N = 2^31-1。Javascript 中 []、new Array(size)、Uint32Array 的大小有限制吗?我猜 Uint32Array 的最大大小是 2^31-1。我还想知道为什么 new Array(N) 的限制比 [] 更高。谢谢
NodeJS 遵循ECMAScript规范,通过V8引擎实现。
最多可以容纳 4,294,967,295 = 42.9 亿个元素。
由于 V8 设置了内存限制,您耗尽了内存,您可以通过使用“max-old-space-size”参数调用 Node 来绕过此限制,如下所示:
节点 --max-old-space-size=1024 yourscript.js
其中 1024 是 1GB,2048 是 2GB,依此类推。
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |