2
我决定最好的办法了很多时间序列数据存储在内存中,我做了一个简单的基准来比较缓冲区VS简单数组:为什么数组的内存少于node.js中的缓冲区?
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%。它是否正确?我当然期望缓冲区占用更少的内存。
它看起来像一个关联数组(图),在它小的缓冲器。数组代码在哪里? – 2012-07-17 09:27:30
@Linus G Thiel,我正在取消评论字符串的注释并在测试数组时对注释2进行评论 – Fluffy 2012-07-17 09:30:56
对于我来说,有一张带有1长度数组的地图似乎很奇怪。这是你的用例吗? – 2012-07-17 09:32:55