【发布时间】:2015-03-21 15:18:52
【问题描述】:
我的 python 脚本确实连接到不同的 ssh 大约 1000 次,每次运行 python 脚本,还使用请求获取网页。
我使用的是子进程,用于执行 ssh 连接和请求库,以获取网页。
之后,当应用程序完成执行时,我有 +500Mb 的 RAM,此外,在运行时,我一直在记录资源,最多有 15 Mb 的资源,但占用 RAM/Swap 大约 500mb。
是什么导致了这种问题?
垃圾收集器 (gc.collect()) 没有帮助,一切都一样。
尝试不使用全局变量,删除使用过的变量,可能比较大,没什么用。
【问题讨论】:
-
你是如何测量这个内存使用的?
-
我在看free -m,或者swapon -s,top等。只有在脚本运行后内存才会增加。顺便说一句,处理的连接量当然取决于大小,RAM 已增加到。在 python 中,在记录时,我一直在使用资源库来测量它
-
我问是因为很多人读错了
free的输出。你在看“mem”行还是“-/+ buffers/cache”行?你应该看看后者。 -
是的,我没看错,此外,当 RAM 结束时,很明显,正在使用交换
-
您在某处保留对数据的引用。没有代码就没什么好说的了。
标签: python garbage-collection ram garbage