0

我有一个想要经常运行的 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 中加载文件,那就太好了。

编辑:在代码中添加空间以使其更易于阅读。

4

1 回答 1

0
paste(saved_file, i, ".RData", sep = "")

在每次迭代时加载一个对象,名称为xxx1xxx2等。rm您是否在循环结束时尝试过对象?我猜这个对象会留在内存中,不管你的变量是否被重用。

只是一个提示:在你的代码中添加空格(就像我做的那样),它更容易阅读/调试。

于 2013-10-17T14:58:38.323 回答