gpt4 book ai didi

Python字典内存使用

转载 作者:太空狗 更新时间:2023-10-30 00:57:39 26 4
gpt4 key购买 nike

我一直在从事一个项目,该项目涉及将相对较大的字典从文件加载到内存中。该字典有不到 200 万个条目,每个条目(键和值组合)不到 20 个字节。磁盘上文件的大小为 38 MB。

我的问题是,当我尝试加载字典时,我的程序立即扩展到使用超过 2.5 GB 的内存。

这是我用来从磁盘读取字典的代码:

f = open('someFile.txt', 'r')
rT = eval(f.read())
f.close()

最佳答案

我认为内存是用来解析字典语法AST的。

对于这种用途,如果您选择 cPickle 会更好模块而不是使用 repr/eval

import cPickle

x = {}
for i in xrange(1000000):
x["k%i" % i] = "v%i" % i
cPickle.dump(x, open("data", "wb"), -1)

x = cPickle.load(open("data", "rb"))

-1 当转储意味着使用更高效但可能不向后兼容旧 python 版本的最新协议(protocol)时。这是否是个好主意取决于您为什么需要转储/加载。

关于Python字典内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com