Node笔记-Buffer

Buffer缓存,又可以说是缓存器,临时存储的信息都可以被称作缓存,比如cookie,session。
Buffer代表的是原始堆的分配额的数据类型,可以直接在全局使用,也可以直接视作一种数据类型。
之前可以通过new Buffer(100);的方式来创建一个指定长度的缓存,但是现在的api中貌似开始废弃,但是仍然可以使用,提倡的使用方式是Buffer.from();
Buffer返回的都是类型的数组,这将意味着我们可以使用数组的方式来操作缓存,只不过数组中只存在原始内存数据,这是因为Buffer底层是基于ArrayBuffer
Buffer.from
这个方法支持传入字符串,数组,缓存。

var b=Buffer.from("abasdfs");   //构建一个有内容的buffer
Buffer.from([1,2,3]);
Buffer.from(b);             //从原有buffer生成一个新的
b.toString(encoding);   //将b缓存转换成其他编码格式的字符串

Buffer API里的例子都很明了,比如Buffer.compare(buf1, buf2)是比较两个buf,这也是之前断言那里说到的deepEqual在深度对比时,就使用了将对象存入缓存后进行比较。
也比如说Buffer.concat(list[, totalLength])可以将list数组中的所有实例拼接totalLength是拼接后返回实例的长度。

或者是Buffer.isBuffer(obj),可以判断一个实例是否为Buffer,Buffer.isEncoding(encoding)可以判断Buffer是否设置了编码。

Buffer的使用
缓存在使用可以是URI只需要遵守data:[mine-Type];[encoding]<data>就可以了,比如

data:image/jpeg;base64,shahagagfya;//后面的base64部分是我瞎打的

同样,在使用stream的同时也会使用到Buffer,这在http ,tcp中都得到了充分的利用,以及在post提交时,也是使用了Buffer,而在游戏优化的过程中,Buffer也有着充分的利用,比如在3D远景渲染时,最初你所看到的都是一个2D贴图,当距离在不断靠近时,GPU才会不断从缓存中渲染。
Buffer的API比较简单,在图形处理上却是一个中心点,使用过webgl的同学都知道管道渲染的原理,图形在渲染的时候是一个顶点一个顶点渲染的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值