В основном мне нужно открыть файл json
, передать в него данные и снова сохранить.Это с большим количеством данных, сделанным многократно.
Дело в том, что я не могу закончить все чтение.
Я протестировал следующий код:
var array = require('./test.json')
for (let i = 0;i<999999999999;i++){
array.push(i)
}
fs.writeFile('./test.json', array, function (err) {
if (err) {
return console.log(err);
}
console.log('saved');
});
И он возвращает:
<--- Last few GCs --->
[3632:000001B9DE56BD10] 2076 ms: Mark-sweep 577.7 (585.1) -> 577.7 (585.1) MB, 92.5 / 0.0 ms allocation failure GC in old space requested
[3632:000001B9DE56BD10] 2174 ms: Mark-sweep 577.7 (585.1) -> 577.7 (582.1) MB, 97.6 / 0.0 ms last resort GC in old space requested
[3632:000001B9DE56BD10] 2273 ms: Mark-sweep 577.7 (582.1) -> 577.7 (582.1) MB, 99.3 / 0.0 ms last resort GC in old space requested
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 00000364863257C1 <JSObject>
1: /* anonymous */ [C:\test\test.js:~1] [pc=000002501A885DE4](this=00000101E000A879 <Object map = 000001EDFF6023B9>,exports=00000101E000A879 <Object map = 000001EDFF6023B9>,require=00000101E000A831 <JSFunction require (sfi = 000000F3AFACAB59)>,module=00000101E000A7A9 <Module map = ...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node_module_register
2: v8::internal::FatalProcessOutOfMemory
3: v8::internal::FatalProcessOutOfMemory
4: v8::internal::Factory::NewUninitializedFixedArray
5: v8::internal::WasmDebugInfo::SetupForTesting
6: v8::internal::interpreter::BytecodeArrayRandomIterator::UpdateOffsetFromIndex
7: 000002501A7043C1
Мой вопрос:
Как оптимизировать код, чтобы избежать этих проблем с памятью?
Оцените помощь!