关于Okio的优点缓存byte[],避免频繁GC

Okio有一个全局的 SegmentPool ,会先从这里取 segment ,

每个Segment 就是一个数组,添加了 一些标记位置的成员变量、保存数据的byte[]每次回收的时候 把这些变量复位 然后放回池子里去.


池子会缓存 64kb的byte数组 ,这样就不需要 每次都 去new 一个 byte数组 避免频繁gc

每个segment的大小都是 固定的 比如(1024个byte) ,用来记录有效数据的 起始位置 , 结束位置什么的

Okio 可以从容器内一个byte一个byte得读,读过了就要移动pos到下一位.类似这样的操作

避免频繁GC

在高频率通信时特别明显。之前同事演示,蓝牙每200ms传回一条数据,没使用Okio之前内存频繁GC,使用之后明显好很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值