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

来源:互联网 发布:微信消息模板php源码 编辑:程序博客网 时间:2024/06/05 18:32

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

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


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

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

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

避免频繁GC