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

正如你可以在Buffer类的Node.js文档中看到一个缓冲区

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

到现在为止还挺好。

现在困扰我的是技术上讲什么是缓冲区的问题。 它是一个只有一些额外的function创build和使用特定的编码转换为string的数组?

还是有“更多”呢?

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

它大致对应于:

  • 在C / C ++中的char*char[]
  • 在Java中是byte[]
  • Python中的可变bytes或不可resize的bytearray
  • PHP中的string,如果他们是可变的

来自http://nodejitsu.com/的解释…

缓冲区是节点中的Buffer类的实例,用于处理原始二进制数据。 每个缓冲区对应于在V8之外分配的一些原始内存。 缓冲区的行为有点像整数的数组,但不能resize,并有一大堆专门用于二进制数据的方法。 另外,缓冲区中的“整数”分别代表一个字节,因此被限制在0到255(2 ^ 8 – 1)之间(包括0和255)的值。

阅读更多: Node.js中的缓冲区

BUFFER是将数据从一个地方移动到另一个地方的暂时停留点。

为了理解什么是缓冲区,我们需要知道计算机如何处理事物。 看下面的图表。

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