gpt4 book ai didi

Python内存泄漏: do I need to delete?

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:22 25 4
gpt4 key购买 nike

我有一个 python 脚本正在慢慢消耗我的所有内存 (48GB)。如果我记得的话,python 会执行垃圾收集,所以我不需要自己清理?

例如:

class data_store:
dat1={}
dat2={}
dat3={}

class myclass ():

def mem_func(self):
self.x = data_store()
self.x.dat1 = (lots of data)
self.x.dat2 = (lots of data)
y = x.dat1 + 1

...

我的大部分数据在写入文件之前都暂时存储在 data_store() 中。我认为这将是泄漏的根源。每次调用 mem_func() 时,都会创建一个新的 data_store() 对象并将其分配给 self.x。我假设旧的 data_store() 对象现在将成为 GC 删除的候选对象。另外,我假设 y 也可以在 mem_func 完成后被删除。

我能想到的唯一一件事是我正在使用 matplotlib 创建图形并将它们保存到文件中。这一切都是在一个函数中完成的,但也许我需要正确删除该数字。另外,我有一个一直打开的 sqlite 数据库,我在其中写入数据,但数据并不多。图像要大得多。

最佳答案

您需要记住,GC 仅收集没有指针(变量)指向它的数据。换句话说,只要可以通过变量访问内存,就不会收集/释放它。

因此,您需要将 None 分配给您不再需要的变量,或者将新数据分配给相同的变量名称(如果您不再需要它们)。

关于Python内存泄漏: do I need to delete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137723/

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