我已经得出结论,对象初始化是导致程序中内存泄漏的原因。我的代码的简化版本如下所示:
while True:
items = [...]
for item in items:
do_something(Item(item))
暂时,我用以下内容替换了无尽的循环:
if __name__ == '__main__':
items = [...]
for item in items:
do_something(Item(item))
os.execv(sys.executable, [sys.executable, __file__] + sys.argv)
但是我宁愿解决问题本身。我尝试过在do_something()
函数之前将对象分配给变量,然后再将其设置为None
,同时最小化对象存储的数据,但是随着时间的推移,内存使用量继续增加。我想避免导入任何其他程序包,但是任何建议都将不胜感激。