理解Buffer

Node中需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络流和文件的操作中,还要处理大量二进制数据,js自有的字符串远远不能满足这些需求,于是buffer对象应运而生。

由于Buffer太过常见,Node在进程启动时就已经加载了它,并将其放在全局对象上,所以在使用Buffer时,无须require()即可直接使用。

Buffer内存分配

Buffer占用的内存不是通过V8分配的,属于堆外内存,是在Node的C++层面实现内存的申请的、在javascript中分配内存。

为了高效使用申请来的内存,Node采用slab分配机制,slab有3种状态:

full  完全分配状态

partial   部分分配状态

empty  没有被分配状态

Buffer的转换

Buffer的拼接

Buffer与性能

在应用中,我们通常会操作字符串,但一旦在网络中传输,都需要转换为Buffer,已进行二进制数据传输。

文件读取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值