2

我有一个从一些哈希键到位串的字典。位串可以是可变长度,但通常 < 160 位并且通常 <80。我有大约 80M 键值对。

如何将这个数据结构存储在尽可能少的内存中?我不想填充位串,否则我会失去相当多的空间(不是双关语)。

我假设我必须在开头存储一个字节,给出位字符串的长度。没关系。

将此字典存储在内存中的最节省内存的方法是什么?

我更喜欢使用 Python,但对其他选择持开放态度。

4

1 回答 1

0

如果您指的是将位串填充到整数字节,那么您可以将所有初始位串的串联存储在一个位串中,并保留一个字典,其值是形式的元组(bit position, length)

问题是,如果我的数学计算正确,那么这个较大的位串的长度可能超过 120 亿位,因此bit position需要在int. 然后,如果您需要自己填充位位置,我们将回到第一方。

但是,如果不同长度的数量小于 64,则可以将长度字段放在 6 位中,最终得到一个字典,将哈希键映射到索引到单个位串中的 5 字节元组。这对你有用吗?

于 2011-11-08T09:41:20.963 回答