Buffer是什么
buffer翻译的意思是缓冲区
在node中,Buffer是用于存储二进制数据的,在内存中新开辟一块天地,在堆以外的内存
Buffer应用场景
当数据流很大的时候,进行buffer缓存一下,进行进一步获取
buffer不在node进程内存里面,所以可以用于存储大的文件,但是还是有限制 的32位系统的大约是1G,64位的系统 大约是2G
如何使用
如何创建Buffer
流会隐形产生buffer,也可以手动创建的buffer
手动创建buffer
这个还得分类型哦,创建
1. Buffer存储数据确定
Buffer.from(obj) // obj支持的类型string, buffer, arrayBuffer, array, or array-like object
Buffer.from(1234);
buffer.js:208
throw new errors.TypeError(
^
TypeError [ERR_INVALID_ARG_TYPE]: The "value" argument must not be of type number. Received type number
at Function.from (buffer.js:208:11)
...
若要传入数字可以采用传入数组的方式:
const buf = Buffer.from([1, 2, 3, 4]);
console.log(buf); // <Buffer 01 02 03 04>
Buffer存储数据未确定
Buffer.alloc、Buffer.allocUnsafe、Buffer.allocUnsafeSlow
Buffer.alloc会用0值填充已分配的内存,所以相比后两者速度上要慢,但是也较为安全。当然也可以通过--zero-fill-buffers flag使allocUnsafe、allocUnsafeSlow在分配完内存后也进行0值填充。
注意:Buffer.from不支持传入数字,如下所示:
网友评论