V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  r150r  ›  全部回复第 1 页 / 共 1 页
回复总数  8
2020-10-07 15:06:12 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
python 标记变量为垃圾而不释放有什么条件吗?
如果把代码里的 session.get 替换成 str = ' ' * (500 * 1024 * 1024),使用的内存会马上就归还给系统,是 requests 的问题吗
2020-10-07 14:09:42 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@chenqh 之前试过 multiprocessing.dummy 也不释放
2020-10-07 14:02:07 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@wangritian 只保持 50 个线程 get 一个相同链接,内存使用量却跟随任务数量无止尽增长,请问这是没有被标记为垃圾,所以无法回收吗?
2020-10-07 13:53:19 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
已更新可以复现问题的最小化代码
2020-10-07 13:51:02 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@noobsheldon 目前是把 mainfunc 放入子进程,分段每 100000 个任务执行 1 次
可目标站的 tid 越高,需要解析的资源就越多,每 100000 个任务需要的内存也就越来越高。
现在 100000 个任务要 26GB 内存了,只能手动调整任务数
2020-10-07 13:41:31 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@superrichman 没有使用 beautiful soup
2020-10-07 01:42:38 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@Hstar 谢谢解答!改成 requests.pop()后打印 tr.print_diff(),list 和 dict 明显少了。不过 htop 显示 1.5G 内存还是没释放,除非这个 mainfunc 结束,看来是 childfunc 的问题。
2020-10-07 00:15:05 +08:00
回复了 r150r 创建的主题 Python 请教 Python 多线程内存不释放怎么排查
@scriptB0y 所有的函数都有 return 了
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4136 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.