gpt4 book ai didi

node.js - 为什么在 Node.js 中数组占用的内存比缓冲区少?

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:17 25 4
gpt4 key购买 nike

我正在决定在内存中存储大量时间序列数据的最佳方法,并且我做了一个简单的基准来比较缓冲区与简单数组:

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%。它是否正确?我当然希望缓冲区占用更少的内存。

最佳答案

您创建的每个缓冲区都会产生开销(时间和空间)。

如果您进行比较,我希望您会获得更好的空间(也许还有时间)性能

buffers[i] = new Buffer(4*1000);
for(k=0;j<1000;++j)
{
buffers[i].writeFloatLE(i+k+1.2, 4*j);
}

buffers[i] = [];
for(k=0;j<1000;++j)
{
buffers[i].push(i+k+1.2);
}

关于node.js - 为什么在 Node.js 中数组占用的内存比缓冲区少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com