大量の時系列データをメモリに格納するための最良の方法を決定しており、バッファと単純な配列を比較するための単純なベンチマークを作成しました。
var buffers = {};
var started = Date.now();
var before = process.memoryUsage().heapUsed;
for (var i = 0; i < 100000; i++) {
buffers[i] = new Buffer(4);
buffers[i].writeFloatLE(i+1.2, 0);
// buffers[i] = [i+1.2];
}
console.log(Date.now() - started, 'ms');
console.log((process.memoryUsage().heapUsed - before) / 1024 / 1024);
結果は次のとおりです。
Arrays: 22 'ms'
8.391242980957031
Buffers:
123 'ms'
9.9490966796875
したがって、このベンチマークによると、アレイは5倍以上高速で、メモリの使用量は18%少なくなります。これは正しいです?私は確かにバッファがより少ないメモリを使用することを期待していました。