質問
node.jsで1.1 GBを超えるファイルをメモリに読み込むにはどうすればよいですか?
例
node.js で topojson を使用して、> 1.1 GB の GeoJSON ファイルを TopoJSON 形式に変換しようとしています。
$ topojson -o outfile.json larger_than_one_point_one_GB_input_file.json
(上記は 517 MB までのファイルで機能します)
次のエラーが発生します
buffer.js:242
this.parent = new SlowBuffer(this.length);
^
RangeError: length > kMaxLength
at new Buffer (buffer.js:242:21)
at Object.fs.readFileSync (fs.js:200:14)
at /usr/local/share/npm/lib/node_modules/topojson/bin/topojson:61:26
at Array.forEach (native)
at Object.<anonymous> (/usr/local/share/npm/lib/node_modules/topojson/bin/topojson:60:8)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
これまでに試したこと
- 広範な検索
- コマンドラインメモリ設定
--max-stack-size=2147000000
--max_executable_size=2000
--max_new_space_size=2097152
--max_old_space_size=2097152
- 最新の v8 バージョンをカスタム node.js インストールにカスタム コンパイルする
- 彼らはこのメモリ制限を取り除いたようです(私が正しければ、そうではないかもしれません)
- これは成功しませんでした
バージョン
- node.js: v0.8.15
- v8: 3.11.10.25