Python集占用太多内存

时间:2017-06-12 01:09:22

标签: python database memory set pickle

我需要一种方法来存储10亿(或更多)相当大的数字,这样就可以相对快速地检查这个10亿个数字中是否存在元素,但是一旦我的Python集大小增加对于超过大约1000万个条目,它使我的程序延迟运行。

我已经尝试将这个集合分成更小的集合,但是在处理任何可观的大小集合时,不断地保存/加载不同的集合(使用cPickle)太慢了。

我也研究过数据库,但似乎大多数数据库中的成员资格测试比本机Python集中的要快得多。此外,我真的不需要数据库提供的额外行李,即我只是建立一个非常大的集合 - 我不需要为每个条目或任何其他花哨的功能提供多个数据字段。

关于以尽可能快的成员资格测试存储大量数字的最佳方法的任何想法?或者是否有适合此任务的数据库(最好是易于在Python中实现的数据库)?或者存储/检索存储/检索Python对象的方法比cPickle快得多吗?

2 个答案:

答案 0 :(得分:1)

对于有类似问题的人,我建议sqlite3。即使收集大量物品,它也非常快。

答案 1 :(得分:-2)

尝试将数据存储到json文件中:查看Json Documentation