虽然说javascript早前无法处理二进制数据,node加了buffer是为了使用javascript处理二进制数据。但是buffer为什么就能处理二进制数据?
buffer是“缓冲区”的意思,内存缓冲区,但是内存缓冲区是为了解决CPU与内存不同IO设备的速度差,为什么node说buffer就能处理二进制数据呢?难道二进制数据就不能直接放在内存中,还必需要放在内存缓冲区才能处理吗?
node中的buffer的本质是什么?
虽然说javascript早前无法处理二进制数据,node加了buffer是为了使用javascript处理二进制数据。但是buffer为什么就能处理二进制数据?
buffer是“缓冲区”的意思,内存缓冲区,但是内存缓冲区是为了解决CPU与内存不同IO设备的速度差,为什么node说buffer就能处理二进制数据呢?难道二进制数据就不能直接放在内存中,还必需要放在内存缓冲区才能处理吗?
node中的buffer的本质是什么?
之所以叫 buffer (缓冲)是因为我们很少会操作单位的二进制数据,一般都是累积一定量一块一块地处理,比如8位
buffer 一个块占的位是8的倍数,也就是至少是8位。
不全放进内存是因为浪费呢!在缓冲区一次处理一段数据,处理完了就扔掉。
4 回答2.6k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
5 回答2.1k 阅读
3 回答2.1k 阅读
2 回答987 阅读✓ 已解决
3 回答1.2k 阅读
3 回答1.4k 阅读
搞不懂的话,可以去官方文档
Buffer | Node.js v8.1.2 Documentation https://nodejs.org/api/buffer...
感觉你是混淆了,就像许多人混淆了数据结构中的堆和内存分配中的堆。
这个buffer就是给你提供操作一块原始二进制内存的一个功能,并不是什么IO缓冲