我注意到,当我打开任务管理器并监视我的程序内存使用情况时,它会在30分钟内线性增加到5GB以上。我希望使用量会随着时间的推移而增加,但这太疯狂了
我不会发布我的代码,因为它非常长,跨越10个不同的py文件
如果我必须猜测问题出在哪里,我会假设它与Pytesseract OCR或Selenium有关。我每秒拍摄一次屏幕截图,这是我能想到的唯一可以使用这么多内存的东西。但是在函数调用结束时,保存图像的变量应该超出范围。我认为如果它将chrome实例存储在Python程序中,也可能是selenium
我使用了一个名为“muppy”的库来打印不同类型的内存使用情况,结果与任务管理器中的结果不匹配
这是我用来打印内存使用情况的代码
if __name__ == '__main__':
...
# this code runs every 30 seconds
all_objects = muppy.get_objects()
sum = summary.summarize(all_objects)
summary.print_(sum)
当task manager显示5gb的ram使用量时,muppy显示:
types | # objects | total size
===================================== | =========== | ============
<class 'list | 357807 | 157.64 MB
<class 'dict | 291873 | 54.72 MB
<class 'str | 469144 | 33.66 MB
<class 'bs4.element.NavigableString | 109679 | 11.52 MB
<class 'bs4.element.Tag | 95831 | 5.12 MB
<class 'type | 2410 | 2.45 MB
<class 'code | 15267 | 2.15 MB
<class 'int | 41775 | 1.13 MB
<class 'tuple | 9362 | 611.35 KB
<class 'set | 693 | 528.59 KB
<class 'bs4.element.Comment | 3588 | 421.11 KB
<class 'weakref | 3262 | 254.84 KB
<class 'frozenset | 920 | 252.50 KB
<class 'collections.deque | 304 | 187.62 KB
<class 're.Pattern | 350 | 174.91 KB
我是不是打错电话了
调试这些东西的最佳方法是什么?我甚至不知道python中会出现内存泄漏
目前没有回答
相关问题 更多 >
编程相关推荐