Node.js中的缓冲区是什么?

时间:2013-01-27 19:02:22

标签: node.js buffer

您可以在Node.js documentation on the Buffer class中阅读缓冲区

  

类似于整数数组,但对应于V8堆外部的原始内存分配。

到目前为止,非常好。

现在让我感到困惑的是技术上讲缓冲区的问题。它是一个只有一些额外函数的数组,用于使用特定编码创建和转换为字符串吗?

或者它还有“更多”吗?

3 个答案:

答案 0 :(得分:33)

缓冲区是一块内存,就像在C / C ++中一样。您可以将此内存解释为各种长度的整数或浮点数的数组,或者作为二进制字符串。与像数组这样的高级数据结构不同,缓冲区不可调整大小。

大致相当于:

    C / C ++中的
  • char*char[]
  • Java中的
  • byte[]
  • Python中的可变bytes或不可调整大小的bytearray
  • php中的字符串,如果它们是可变的

答案 1 :(得分:13)

BUFFER是数据从一个地方移动到另一个地方的临时控制点。

为了理解什么是Buffer,我们需要知道计算机如何处理事物。见下图。

这个概念就像你正在观看Youtube视频一样,你可以在不下载整个视频的情况下开始观看视频。如果您的网速太慢,您会看到“缓冲”,这意味着计算机正在尝试收集数据,以便您继续观看该视频。

答案 2 :(得分:6)

http://nodejitsu.com/的解释......

  

Buffers是节点中Buffer类的实例,它是设计的   处理原始二进制数据。每个缓冲区对应一些原始内存   在V8之外分配。缓冲区的行为有点像整数数组,   但是没有可调整大小并且具有一大堆特定方法   用于二进制数据。另外,每个缓冲区中的“整数”   表示一个字节,因此限制为0到255(2 ^ 8 - 1)的值,   包容。

了解详情:Buffers in Node.js