最近股票模型扫全场股票数据回溯过去三个月的时候,扫到最后总会内存爆掉,搞得通知邮件也没发出来,持续了一周多,终于决定要把它解决了。
看看python内存泄露的调查方法,有tracemalloc/memory_profiler,试了下,tracemalloc倒是有点东西,可是也没看出来问题。
继续用memory_profiler,想看的方法上加@profile就可以。
结果很明显
774 370.2 MiB 0.0 MiB 1 pic_name = "./pic/"+check_ts_code+"_"+end_day+".jpg"
775 409.5 MiB 39.3 MiB 1 plt.savefig(pic_name)
776 409.5 MiB 0.0 MiB 1 return True,fx_plot[-1],pivots[-1][0][1],fx_time[pivots[0][2]],"buy",pic_name
在保存图片之后,没有清理plt,所以一直没释放,内存就堆积了。
在后面加上
fig.clf()
plt.close()
大功告成
记一次python内存泄漏调查
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 主要有一下几个监控程序。 cProfile:可以打印每个函数的运行次数及运行总时间和平均时间。line_profi...
- 当运行一个复杂的 Python 程序,它需要很长时间来执行。你或许想提升它的执行时间。但如何做? 首先,你需要工具...
- 本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 我的掘金 Android Profiler的使用可...
- 1 我画出来的图: 2 运行代码在此: 3 简略讲解版本: #导入库 import matplotlib.pypl...