Buffer
- 是一个类似于数组的对象,不同是Buffer是专门用来保存二进制数据的
- 特点
- 效率高,存储和读取快,直接对计算机内存进行操作
- 大小一旦确定了,不可修改
- 每个元素占用内存的大小为1字节
- 是Node的核心模块,无需引用下载,即可使用
// 实例化 Buffer对象 --- 性能特别差
let buf = new Buffer(10);
// 替代
let buf2 = Buffer.alloc() // 创建一个Buffer对象(性能比new 稍强)
let buf3 = Buffer.alloUnsafe() // 创建一个Buffer对象(性能最好)
/*
1. 输出 buf3 里面有大于1的 ?
输出的是16进制,存储的是二进制
2. 输出的 buf3 不为空 ?
在堆里开辟的空间,可能残留数据,所以allocunsafe
*/
// 将数据存储一个Buffer实例
let buf4 = Buffer.from('hello,world')
/*
1. 自动实例化Buffer对象
2. 输出16进制
3. 通过 .toString() 转换成字符串
*/
以上代码中
- buf 性能差的原因
- 在堆里开辟空间
- 清理空间
- buf2 性能稍微好的原因
- 在堆中开辟一个空间
- 该空间没有用过
- buf3 性能最好
- 随机在堆里开辟空间
- 可能存在残留数据