0

我正在尝试使用bloom/cuckoo过滤器来检查我是否已经存储了2个数字的元组fe(7,25),(47,1576),...等

In [12]: from cuckoo.filter import ScalableCuckooFilter                                                                                                                      

In [13]: c = ScalableCuckooFilter(initial_capacity=1000000, error_rate=0.0001)                                                                                               

In [14]: c.filters[0].buckets.buffer_info()                                                                                                                                  
Out[14]: (140042688086032, 8500000, 'big', 0, 8500000, 0, 0, 0)

In [15]: 8500000/(1024*1024)                                                                                                                                                 
Out[15]: 8.106 MB

要存储数字,我每个数字需要 2 个字节,所以 100 万 * 4 字节 = 3.8 Mb

所以过滤器比数据大!

有没有适合内存占用较少的数字的方法或结构?

4

0 回答 0