[Node.js源码解读(3)]Buffer的8KB池分配规则和固定位数字的读写
原作者:蔡伟。
经原作者授权连载于alinode官方博客,未经原作者允许,不得转载。
在 Node.js 中,Buffer 常常用来存储一些潜在的大体积数据,例如,文件和网络 I/O 所获取来的数据,若不指定编码,则都以 Buffer 的形式来提供,可见其地位非同一般。你或许听说过,Buffer 的创建,是可能会经过内部的一个 8KB 池的,那么具体的规则是什么呢?可以创建一个新 Buffer 实例的 API 那么多,到底哪些 API 会经过,哪些又不会经过呢?或许你在阅读文档时,还看到过许多形如 Buffer#writeUInt32BE , Buffer#readUInt32BE 等等这类固定位的数字的读写操作,它们具体是如何实现的呢?
现在让我们一起跟着 Node.js 项目中 lib/buffer.js 中的代码,来一探究竟。