gpt4 book ai didi

Python内存管理——字典

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:02 27 4
gpt4 key购买 nike

我在文件中保存了一本字典。我从 python 交互式 shell 将字典加载到内存中,我的系统监视器显示 python 进程消耗了 4GB。以下命令提供以下输出:

size1 = sys.getsizeof(mydict)/(1024**2)
print size1

96

size2 = 0
for i in mydict.keys():
size2 += sys.getsizeof(i)
print size2/(1024**2)

37

size3 = 0
for i in mydict.keys():
size3 += sys.getsizeof(mydict[i])
print size3/(1024**2)

981

size4 = 0
for i in mydict.keys():
for j in mydict[i]:
size4 += j
print size4/(1024**2)

2302

print str(size1 + size2 + size3 + size4)

3416

现在如果我删除字典

del(mydict)
gc.collect()

释放的内存不足 400MB。即使我首先从字典中的列表中一个一个地删除所有项目,释放的内存也不超过 450-500 MB.. 所以我最终在我的 shell 中没有变量,但仍然消耗了 3.5GB。 . 谁能解释发生了什么?

最佳答案

有两点需要注意:

即使您删除了整个对象,python 也可能保留该内存以供进一步使用(而不是稍后再次分配内存)。 python 在操作系统中留下的足迹不会显着改变。

在 Linux 和基于 UNIX 的系统上,进程在应用程序终止之前不一定会归还分配的内存。

为了成功释放内存,您可能需要查看 garbage collector .有了它,您可以强制 python 释放分配的内存。

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

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