node中的buffer该如何理解?

虽然说javascript早前无法处理二进制数据,node加了buffer是为了使用javascript处理二进制数据。但是buffer为什么就能处理二进制数据?

buffer是“缓冲区”的意思,内存缓冲区,但是内存缓冲区是为了解决CPU与内存不同IO设备的速度差,为什么node说buffer就能处理二进制数据呢?难道二进制数据就不能直接放在内存中,还必需要放在内存缓冲区才能处理吗?

node中的buffer的本质是什么?

阅读 4.4k
2 个回答

搞不懂的话,可以去官方文档
Buffer | Node.js v8.1.2 Documentation https://nodejs.org/api/buffer...

感觉你是混淆了,就像许多人混淆了数据结构中的堆和内存分配中的堆。
这个buffer就是给你提供操作一块原始二进制内存的一个功能,并不是什么IO缓冲

之所以叫 buffer (缓冲)是因为我们很少会操作单位的二进制数据,一般都是累积一定量一块一块地处理,比如8位
buffer 一个块占的位是8的倍数,也就是至少是8位。

不全放进内存是因为浪费呢!在缓冲区一次处理一段数据,处理完了就扔掉。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进