R脚本和库预加载?

时间:2012-03-30 02:14:56

标签: r shell preload rscript

我创建了一个R脚本,需要首先加载一些库。

问题是脚本需要1.6秒才能完成计算(使用Linux命令“time”多次测量),0.7秒只需加载库!

该脚本经常运行,因此库加载的延迟几乎占实际工作负载的80%!

有没有办法预先加载库,以便每次脚本运行时都不会加载它们?

还有其他建议可以绕过这种缓慢的行为吗?

#!/usr/bin/Rscript

library(methods, quietly=TRUE, warn.conflicts = FALSE)
library(MASS, quietly=TRUE, warn.conflicts = FALSE)
library(RBGL, quietly=TRUE, warn.conflicts = FALSE)
library(igraph, quietly=TRUE, warn.conflicts = FALSE)
library(bnlearn, quietly=TRUE, warn.conflicts = FALSE)
library(gRbase, quietly=TRUE, warn.conflicts = FALSE)
library(gRain, quietly=TRUE, warn.conflicts = FALSE)
..
..

1 个答案:

答案 0 :(得分:5)

如果你把你的脚本变成一个包(无论如何,你应该从长远来看......)那么你可以使用Imports只需要你所使用的包所需的符号 - 这通常是比Depends更快地比满载更快。

所以关键是

  1. 使用包
  2. 了解NAMESPACE
  3. import只是您需要的符号。
  4. 正交方法不是重新启动并节省时间 - 您可以使用Rserve作为驻留R实例并只使用R客户端连接到它。可能还有更多的工作......