从磁盘加载的Python字典占用内存空间过大
我有一个保存在磁盘上的字典文件,大小大约是780兆字节。但是,当我把这个字典加载到内存中时,大小却意外地膨胀到了大约6千兆字节。有没有办法让它在内存中的大小保持接近实际的文件大小呢?(我指的是如果在内存中占用大约1千兆字节是可以接受的,但6千兆字节就有点奇怪了)。这是pickle模块的问题吗,还是我应该用其他格式保存这个字典?
这是我加载文件的方式:
import pickle
with open('py_dict.pickle', 'rb') as file:
py_dict = pickle.load(file)
任何想法或帮助都将非常感谢。
2 个回答
1
用SQL把所有数据存到一个数据库里,然后用高效的查询来获取这些数据。
6
如果你只是用 pickle
来在字典里存储一些大值,或者存很多键的话,建议你考虑使用 shelve
。
import shelve
s=shelve.open('shelve.bin')
s['a']='value'
这样的话,只有在需要的时候才会加载每个键/值,其他的则保留在硬盘上。