use*_*584 8 memory loops r freeze
我有一个压缩文件列表[~90个文件].我已经编写了一个循环来解压缩它们(每个文件大约1Gb),做一些计算,保存每个文件的输出并删除解压缩的文件.此过程的一次迭代需要每个文件30-60分钟[并非所有文件的大小完全相同].
我不太担心时间,因为我可以让它在周末工作.然而,R并没有设法完全通过.我在星期五晚上离开了它,它只运行了12个小时,所以它只处理了90个文件中的30个.
我不经常处理这种类型的重型过程,但过去在类似过程中也是如此.我需要在循环中插入任何命令以避免计算机因此密集过程而冻结吗?我gc()在循环结束时尝试无济于事.
是否有针对此类程序的"良好做法"建议清单?
如果您的会话冻结,您可能会遇到需要隔离的问题,因为它可能是单个文件,或者您可能会受到内存限制或大量使用交换.
无论如何,这里有一些你可以实现的技巧或想法:
process_gz_folder().然后遍历文件路径并调用每次创建的函数,这样可以保持全局环境的清洁.gc()可以提供帮助,但这取决于具体情况以及是否正在清除内存(rm()例如在运行后).可以在第一点调用函数后使用.try()以确保故障不会阻止未来的迭代-但是这应该产生警告/输出通知失败的,这样就可以在以后回来.setTimeLimit()并提供一个时间,如果文件未被处理,代码将停止运行.使用bash脚本迭代此脚本,调用所述R脚本Rscript,可以传递参数(例如文件路径).这种方法可能有助于避免冻结,但取决于您了解并设置可接受的时间.这些只是一些想到的想法,可能是您的示例中要考虑的事情(给定提供的信息).查看一些代码并了解您在每个文件上执行的处理类型会有所帮助.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |