如何以最小的内存占用量将100万到45万个布尔值存储在类似于字典的集合中,这些值由长数字进行索引? True和Int每个条目都占用超过22个字节。 是否可能有更低的布尔值内存占用?
如何以最小的内存占用量将100万到45万个布尔值存储在类似于字典的集合中,这些值由长数字进行索引? True和Int每个条目都占用超过22个字节。 是否可能有更低的布尔值内存占用?
你考虑过使用混合列表/位串吗?
使用列表存储位的一个维度。每个列表项将保存固定长度的位串。您可以使用列表将搜索集中到感兴趣的位串,然后使用位串查找/修改感兴趣的位。
该列表应允许最有效地检索位串,位串应允许您尽可能高效地打包所有数据,并且混合列表/位串应允许在速度(稍微较慢地访问列表中的位串)和存储(位打包数据加上列表开销)之间进行折衷。