Node.js中的缓冲区分配

3

我希望使用缓冲区来存储稀疏索引。如果我分配一个大小为1024字节的缓冲区,并且有效地在其中存储了128字节,那么在内存中会分配多少字节?

答案是1024字节,因为缓冲区已经被分配了1024字节的内存空间,即使只存储了128字节,其余的空间也不能被其他程序使用。


你所称呼的缓冲区是指什么?字符串?字节数组? - Remy Grandin
https://nodejs.org/api/buffer.html - Gaël Barbin
1
可能不是v8的一部分,而是Node.js的一部分。 - Gaël Barbin
1个回答

1

根据构造函数文档:

new Buffer(size)#

size 数字 分配一个大小为 size 字节的新缓冲区。在32位结构上,size 必须小于 1,073,741,824 字节(1 GB),在64位结构上必须小于 2,147,483,648 字节(2 GB),否则会抛出 RangeError

与 ArrayBuffer 不同,缓冲区的底层内存不会被初始化。因此,新创建的缓冲区的内容未知,可能包含敏感数据。使用 buf.fill(0) 将缓冲区初始化为零。

似乎整个内存都被分配了,但没有清零。


是的,我已经阅读了那个,但我在考虑可能的内存分配优化。如果没有,我会自己做。 - Gaël Barbin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接