1、手动垃圾回收
import gc
local_store = ['local_store']
locals_keys = list(locals().keys())
for x in locals_keys:
if x not in local_store:
del locals()[x]
gc.collect()
2、matplotlib 内存溢出
画完要手动关闭
import matplotlib.pyplot as plt
plt.clf()
plt.close()
3、把占内存大的处理部分单独封装到线程里
有两个级别的内存分配。当对象的引用计数变为零时,Python将释放它们。除非您有无法解决的复杂循环引用,否则当实现线程的函数返回时,python将释放对象。但这并不意味着它可以回到操作系统。如果另一个进程需要内存,则操作系统可以将该进程分配但未使用的内存交换到磁盘。如果您的程序不再触及内存,它将保留在磁盘上。