The node process likely reaches the 1.5GB memory and starts to run GC.
You should increase the memory limit for node.js process using --max-old-space-size flag
node --max_old_space_size=6096 server.js
or if you use jsreport cli set environment variable
NODE_OPTIONS="--max-old-space-size= 6096"
and run
jsreport start
This will get propagated by default just to the main process. If you use dedicated-process or http-server strategy for templating engines/scripts, you need to set also this config
"templatingEngines": {
"timeout": 1000000,
"strategy": "dedicated-process",
"forkOptions": {
"execArgv": ["--max-old-space-size=6096"]
}
}
However, the in-process strategy will give you the best performance, because it avoids serializing and deserializing of such giant JSON between processes.
With increasing the memory limits, I am able to produce 200MB output with 15mil records.