性能优化:Trove集合库 - 小毛的胡思乱想
Read full article from 性能优化:Trove集合库 - 小毛的胡思乱想
Trove相当于把JDK集合类都针对原生类型处理了一遍,例如int,常见的类有 TIntList、TIntObjectMap、TObjectIntMap、TIntSet,可想而知,维护Trove的工作量是挺大的。
Trove还提供了开放寻址法的Map,Set,LinkedList实现,可以参考Enhance Collection Performance with this Treasure Trove的做法,类似于:
Trove不推荐JDK的entryXX的做法,而是采用了forEach的回调方式。 代码显得更好看些,另外内存方面也有优势,因为使用entryXX的做法,需要创建一个新的数组。- 自定义Hash策略
我们知道,在JDK集合类里边,有时候是没法自定义Hash策略的,例如String。 不过Trove提供了自定义Hash策略的功能,让你可以根据数据特性进行优化。
- 直接使用原生类型,而不是包装类型
- 使用开放寻址法,而不是链地址法
- HashSet不再通过内置HashMap实现
- 采用素数长度大小的数组
Read full article from 性能优化:Trove集合库 - 小毛的胡思乱想
No comments:
Post a Comment