数据压缩方案之高性能集合 IntObjectHashMap

Posted 抓手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据压缩方案之高性能集合 IntObjectHashMap相关的知识,希望对你有一定的参考价值。

IntObjectHashMap的使用方法和JDK的HashMap一致

IntObjectHashMap<String> intObjectHashMap = new IntObjectHashMap<>();

intObjectHashMap.put(1, "a");
intObjectHashMap.put(2, "b");

String s = intObjectHashMap.get(1);

经测算,存入1万数据,
IntObjectHashMap<V>相较HashMap<Integer, V>对于结构存储开销降低40%~60%
不生成Integer对象,GC性能也更好。

IntObjectHashMap是Netty中的一个类,路径:io.netty.util.collection.IntObjectHashMap

类继承关系图

IntObjectHashMap的key是基本类型int类型,比包装的Integer类型占用内存小。

IntObjectHashMap的value就是真实的value,不像HashMap内部维护的Node,也会更节约内存。

IntObjectHashMap没有和JDK的HashMap一样,使用链表法来解决hash冲突,而是使用了线性探测策略的开放寻址法,由于使用开放寻址,在hash碰撞较为严重的场合,其查询性能比HashMap会更好,但是其扩缩容的代价会比HashMap更大,性能更糟。 

其他集合

 

以及其他包下的集合,org.antlr.v4.runtime.misc.IntSet 也可以压缩数据。

以上是关于数据压缩方案之高性能集合 IntObjectHashMap的主要内容,如果未能解决你的问题,请参考以下文章

Android性能优化之图片压缩综合解决方案

Android性能优化之图片压缩综合解决方案

简介redis之集合类型数据

SQL 基础之创建其他方案对象(十五)

一个操作让游戏内存立减50+%-CocosCreator性能优化之压缩纹理

java架构之数据库MongoDB4.0入门到实践掌握NoSQL数据库企业主流解决方案