我有一个从一些哈希键到一个字符串的字典。 bitstring可以是可变长度的,但通常是&lt; 160位,通常<80。我有大约80M的键值对。
如何将此数据结构存储在尽可能少的内存中?我不想填充比特串,否则我将失去相当多的空间(没有双关语)。
我假设我必须在开头存储一个字节,给出位串的长度。没关系。
将此dict存储在内存中的内存效率最高的方法是什么?
我更喜欢使用Python,但我愿意接受其他选择。
答案 0 :(得分:0)
如果你指的是将位串填充为整数个字节,那么你可以将所有初始位串的串联存储在一个位串中,并保留一个字典,其值为{{1}形式的元组}。
问题是,如果我做了正确的数学运算,那么这个更大的位串的长度可能超过120亿位,因此(bit position, length)
需要比bit position
多几位。然后,如果你需要填补位置本身,我们将回到原点。
然而,如果不同长度的数量是&lt; 64,你可以将长度字段装入6位,最后得到一个字典映射哈希键,将5字节元组索引到单个位串中。这对你有用吗?