从磁盘加载的 Python 字典占用太多内存空间

标签 python file-io pickle

我有一本 pickle 在磁盘上的字典,大小约为 780 兆(磁盘上)。然而,当我将该词典加载到内存中时,它的大小意外地膨胀到大约 6 GB。无论如何也要将大小保持在内存中的实际文件大小附近,(我的意思是如果它在内存中占用大约 1 gig 就没问题,但是 6 gig 是一种奇怪的行为)。 pickle 模块是否有问题,或者我应该将字典保存为其他格式?

这是我加载文件的方式:

import pickle

with open('py_dict.pickle', 'rb') as file:
    py_dict = pickle.load(file)

任何想法,帮助,将不胜感激。

最佳答案

如果您使用 pickle 只是为了在字典中存储大值或大量键,您应该考虑使用 shelve相反。

import shelve
s=shelve.open('shelve.bin')
s['a']='value'

这仅在需要时加载每个键/值,将其余的保留在磁盘上

关于从磁盘加载的 Python 字典占用太多内存空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660717/

相关文章:

ruby - 在 Ruby 中如何检测文件是否可写?

python - 将 pandas 数据框保存到 pickle 和 csv 之间有什么区别?

c# - 关于异常处理,删除文件的最有效方法是什么?

python - 从数据帧值更新 pickle 文件

python - 如何有效地将 "set"(python 类型)存储在数据库中?

javascript - Django 通过上下文动态显示表单域

python - 使用 scrapy 选择单选按钮

python - 如何规范化使用命名实体识别提取的关键字

python - 对大素数求和需要时间!我怎样才能让它更有效率?

java - 加快文件读取