python 循环中 无法释放占用内存

问题 python 循环里 无法释放占用内存 即使手动删除 del 对象 再调用gc回收 也无法释放内存 以为你del 只能强引用 的计数器设为-1 但是gc回收 时 会重新检查代码中的引用计数器 但是我的ai处理代码因为在while 循环中 所以导致gc 永远无法释放内存 。导致ai在没计算时还会占用计算时所申请的最大内存
解决: 1. 尝试弱引用 weakref 计算完成 后 del 后gc计数器为0 但是还是无法释放内存
2. python 底层手动申请内存 pyObject_GC_New() 解决还是
3. 用 python multiprocessing 的线程 解决内存占用 每次循环取到任务 启动一个新的线程, 因为线程 计算完成会自动释放内存 。
目前ai 只有在取到任务时 才会占用内存 计算完成立即释放只会保存180MB的主进程(循环获取任务)
simpleITK render 多线程程无法传递 ???报无法加载的错误

posted @ 2022-11-30 22:51  luofeel  阅读(558)  评论(0编辑  收藏  举报