我有一个我想经常运行的R脚本。几个月前,当我写它并发起时,没有问题。 现在,我的脚本消耗了几乎所有(99%)的CPU并且它比以前慢了。我在服务器中运行脚本,并且其他用户在脚本运行时遇到来自服务器的慢响应。 我试图找出它缓慢的代码片段。以下循环几乎占用了脚本使用的所有时间和CPU。
for (i in 1:100){
load (paste (saved_file, i, ".RData", sep=""))
Do something (which is fast)
assign (paste ("var", i, sep=""), vector)
}
每次迭代加载的数据大约为11 MB。当我在脚本上运行任意“i”时,加载文件步骤比其他命令花费更长的时间。 我花了几个小时阅读论坛帖子,但无法得到任何关于我的问题的提示。如果你能指出我是否遗漏某些内容或建议在R中加载文件的更有效方法,那就太棒了。
编辑:在代码中添加了空格,使其更易于阅读。
答案 0 :(得分:0)
paste(saved_file, i, ".RData", sep = "")
在每次迭代时加载一个对象,名称为xxx1
,xxx2
,依此类推。
您是否在循环结束时尝试rm
对象?我猜这个对象会留在内存中,无论你的变量被重用。
只是一个提示:在代码中添加空格(就像我一样),它更容易阅读/调试。