2

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

问题是脚本需要 1.6 秒来完成它的计算(用 Linux 命令“时间”测量了很多次),而加载库只需要 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)
..
..
4

1 回答 1

5

如果你把你的脚本变成一个包(无论如何你应该这样做,从长远来看......),那么你可以只使用Imports你使用的包中需要的符号——这通常比完全加载快一点由 完成Depends

所以关键是

  1. 使用一个包
  2. 学习关于NAMESPACE
  3. import只是你需要的符号。

一种正交方法是不重新启动并节省时间 --- 您可以将Rserve用作常驻 R 实例,并使用 R 客户端连接到它。不过可能还有更多的工作......

于 2012-03-30T02:20:34.000 回答