0

我正在开发用于数据索引的字对齐位图压缩算法。算法基于 WAH 压缩研究论文。压缩位图在按位操作上表现良好,并且非常节省空间。但是修改压缩位图效率不是很高,因为修改需要拆分压缩字大小块和几个 memmove 导致性能瓶颈。

请看下面的例子。

示例:数据集 - [1000000,34,9,23456,6543,10000000,23440004,100,345]

由于数据集的随机性,性能会降低,在实际应用场景中可能会发生这种情况。

  1. 谁能给我一个关于如何克服这个性能问题的提示?
4

1 回答 1

1

Daniel Lemire 有几篇关于预排序以提高压缩和性能的论文。这是最新的: http: //arxiv.org/abs/1207.2189

你也可以看看他的 EWah 变体。

普遍的感觉是,当数据集变化缓慢时,位图数组压缩技术效果很好,因为大多数实现会丢弃并在每次更改时重建索引。对于变化更频繁的数据集,传统的索引方法(例如 B-Tree 变体)仍然是王道。

实现:https ://github.com/lemire/javaewah和https://github.com/lemire/EWAHBoolArray

于 2012-10-22T18:59:16.480 回答