Java集合框架Koloboke

Posted by Ariescat on February 26, 2019

Koloboke的目标是替换标准的Java集合和流的API,提供更高效的实现。Koloboke目前的版本主要是替换java.util.HashSetjava.util.HashMap

Koloboke提供了一套完整的集合原始类型的实现,可以避免开销很大的装箱/拆箱操作,节省了原始类型装箱消耗的内存

在Koloboke中,HashSet和HashMap比其它专门的实现(比如GS collections、fastutil、HTTP & Trove)要更快,这是因为:

1)相比于其它库,Koloboke对每个entry使用了更少的内存
2)Koloboke目标是把键和值存储在同一行高速缓存中
3)所有的方法都经过了实现优化,而不是像AbstractSet类或AbstractMap类那样委托给框架类(Skeleton Class)

Koloboke的官网: http://chronicle.software/products/koloboke-collections/

Koloboke的特征:
1)极好的兼容Java集合框架(JCF,Java Collections Framework)
2)所有原始专门的集合类都继承了基本的接口(比如Collection、Set、Map)
3)可用于替换标准的JCF
4)Koloboke API for Java 6 and Java 7向前兼容Java 8的新方法
5)快速失败的语义
6)支持null键(可选的),就像java.util.HashMap中的Float.NaN和Double.NaN键的处理那样。

什么时候使用Chronicle Map或Koloboke Map?

使用Chronicle Map的场景:
1)存储的entry超过5亿条
2)在进程之间分布Map
3)使用堆外内存(Off-Heap Memory),因为键和值占用了太多的内存,JVM遭遇GC的痛苦

当不想在进程间共享数据,且存储的entry在5亿条以内,那么Koloboke是更理想的选择。

Koloboke目前的最新版本为0.6.8版。可以从Maven仓库使用它:

<dependency>
    <groupId>net.openhft</groupId>
    <artifactId>koloboke-api-jdk8</artifactId>
    <version>0.6.8</version>
</dependency>
<dependency>
    <groupId>net.openhft</groupId>
    <artifactId>koloboke-impl-jdk8</artifactId>
    <version>0.6.8</version>
</dependency>

Gradle依赖为

dependencies {
    // `jdk8` instead of `jdk6-7` if you use Java 8
    compile 'net.openhft:koloboke-api-jdk6-7:0.6.8'
    runtime 'net.openhft:koloboke-impl-jdk6-7:0.6.8'
}

  1. 1 紅蓮華 LiSA
  2. 2 打上花火 DAOKO,米津玄師
  3. 3 secret base ~君がくれたもの~ 茅野愛衣,戸松遥,早見沙織
  4. 4 Lemon 米津玄師
  5. 5 鳥の詩 Lia
  6. 6 光るなら Goose house
紅蓮華 - LiSA
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : LiSA

作曲 : 草野華余子

強くなれる理由を知った 僕を連れて進め

泥だらけの走馬灯に酔う こわばる心

震える手は掴みたいものがある それだけさ

夜の匂いに空睨んでも

変わっていけるのは自分自身だけ それだけさ

強くなれる理由を知った 僕を連れて進め

どうしたって!

消せない夢も 止まれない今も

誰かのために強くなれるなら

ありがとう 悲しみよ

世界に打ちのめされて負ける意味を知った

紅蓮の華よ咲き誇れ! 運命を照らして

イナビカリの雑音が耳を刺す 戸惑う心

優しいだけじゃ守れないものがある? わかってるけど

水面下で絡まる善悪 透けて見える偽善に天罰

逸材の花より 挑み続け咲いた一輪が美しい

乱暴に敷き詰められた トゲだらけの道も

本気の僕だけに現れるから 乗り越えてみせるよ

簡単に片付けられた 守れなかった夢も

紅蓮の心臓に根を生やし この血に宿ってる

人知れず儚い 散りゆく結末

無情に破れた 悲鳴の風吹く

誰かの笑う影 誰かの泣き声

誰もが幸せを願ってる

どうしたって!

消せない夢も 止まれない今も

誰かのために強くなれるなら

ありがとう 悲しみよ

世界に打ちのめされて負ける意味を知った

紅蓮の華よ咲き誇れ! 運命を照らして