![](/img/trans.png)
[英]how to clean ram memory in python running a series of YOLO predictions?
[英]Clean python RAM memory
我有一些脚本,它们从 BigQuery 下载数据,使其更易于处理并将其传输到 PostgreSQL。 问题是,来自 BigQuery 的文件非常庞大。 相隔一天,每天大约有 700-1500 Mb 的数据,使用 pandas 数据帧处理。 我试图制作一个脚本,以便它一个一个地处理每个文件,但是我用完了 memory。
循环末尾的 gc.collect() 没有帮助,使用 del(n, h, r) 删除每个循环中的每个 dataframe 也无法按需要工作。 仍然用完RAM。
我试图循环运行脚本,认为这可能会有所帮助
for dir, subdir, files in os.walk(source_path):
for file in files:
exec(open("script.py").read())
gc.collect()
在脚本的最后,我还有 gc.collect() 和 del()。 它仍然最多可以执行 2、3 个文件,然后用完 memory。
我试图将 sys.exit 放在 script.py 的末尾,但在这种情况下,上述循环在 1 个文件后中断。
如何避免 memory 用完? 基本上,从循环的上一次迭代中清理文件的 RAM 并继续到下一次?
处理此问题的更好方法是通过 pandas 块处理程序。
for chunk in pd.read_sql_query(sql , con, chunksize=10000):
# upload chunk into PG, so you're not reading the entire table at once
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.