Reputation: 8139
I'm using node v0.12.4.
When I run the following code with node --max-old-space-size=8192 test.js
it gives me the error FATAL ERROR: invalid array length Allocation failed - process out of memory
var a = new Array(200000000);
console.log(a.length);
However if I change the size to 300000000 I don't get any error. What's going on here? Is there some command line argument aside from --max-old-space-size
I need to change?
Upvotes: 28
Views: 15103
Reputation: 39191
Compiling Typescript to ES2017+ might solve this issue.
Sources:
NodeJS memory growth - Memory leak in (system)?
https://github.com/express-validator/express-validator/issues/824
Upvotes: 0
Reputation: 4029
V8's heap size is limited to 1 GB for 64 bit and 512 for 32-bit machine, but Buffer objects exist largely outside the heap. you can expand the memory use up to 1.7 GB in 64-bit and ~1 GB in 32-bit machine. You can try this.
--max-old-space-size=3000 --trace-gc-verbose
you can print the trace to know about the memory use.
Upvotes: 11
Reputation: 2865
There is a limit of memory.64bit Machines can use about 1.6gb.This is the limit of V8 compiler. this links maybe can help you
Configuring v8's memory management to be smart for a node.js process
https://groups.google.com/forum/#!topic/nodejs/BQ5dSm8lITQ
Upvotes: -1