具有类似数组性能的 Java Bitset 替代方案?

2024-05-01

我正在寻找 Java Bitset 实现的替代方案。我正在实现一个高性能算法,似乎使用 Bitset 对象会降低其性能。有任何想法吗?


Someone here https://stackoverflow.com/questions/605226/boolean-vs-bitset-which-is-more-efficient比较过boolean[] to BitSet并得出以下结论:

BitSet比内存效率更高boolean[]除了非常 小尺寸。每个boolean数组中占用一个字节。号码 从runtime.freeMemory()有点混乱BitSet,但较少。

boolean[]除了非常大的尺寸之外,CPU 效率更高,其中 他们差不多。例如,对于大小 100 万boolean[]是关于 速度快四倍(例如 6 毫秒 vs 27 毫秒),十亿 他们差不多。

如果你谷歌,你也可以找到一些替代实现,比如JavaEWAH http://code.google.com/p/javaewah/,使用者阿帕奇蜂巢 http://hive.apache.org/, 阿帕奇火花 http://spark.apache.org/ and Eclipse JGit http://www.eclipse.org/egit/。它声称:

字对齐压缩的目标并不是达到最好 压缩,而是为了提高查询处理时间。因此,我们 尝试节省 CPU 周期,可能会牺牲存储空间。但是,那 我们实施的 EWAH 方案在存储方面总是比 在 BitSet 类中实现的未压缩位图)。不像 javaewah 的一些替代方案并不依赖于专利方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有类似数组性能的 Java Bitset 替代方案? 的相关文章

随机推荐