为什么在创建缓冲区时需要为缓冲区分配内存?

时间:2017-09-14 09:53:57

标签: javascript node.js buffer

Javascript是一种动态语言,为什么在创建缓冲区时必须提到缓冲区的大小?

var buffer = new Buffer(10);

2 个答案:

答案 0 :(得分:2)

我认为Buffer个实例可能会在幕后使用typed arrays来提高效率,甚至是低级数组(因为Buffer是Node的本机部分,用C ++编写,而不是JavaScript)。实际上,看node_buffer.cc,情况似乎如此。类型化数组或低级数组是固定大小的创建分配结构。

附注:new Buffer(size)已弃用;请改用Buffer.alloc

答案 1 :(得分:2)

来自Node.js文档:

  

Buffer类的实例类似于整数数组但是   对应于V8堆外部的固定大小的原始内存分配。   Buffer的大小在创建时建立,不可以   调整大小。

由于数组本身需要在初始化时指定它们的大小,因此缓冲区也是如此。