Speed-up/Cache loadNamespace()
It's possible to run R (or a c parent process) as a background process via a named pipe, and then write script files to the named pipe. However, the details depend on what shell you use. The last time I tried (which was a long time ago), I created a small c program to run R, read from the named pipe from within c, then wrote it's contents to R's standard in. It might be possible to do it without the c program. Haven't checked.
On Mon, Jul 20, 2020 at 3:50 AM Mario Annau <mario.annau at gmail.com> wrote:
Dear all,
in our current setting we have our packages stored on a (rather slow)
network drive and need to invoke short R scripts (using RScript) in a
timely manner. Most of the script's runtime is spent with package loading
using library() (or loadNamespace to be precise).
Is there a way to cache the package namespaces as listed in
loadedNamespaces() and load them into memory before the script is executed?
My first simplistic attempt was to serialize the environment output
from loadNamespace() to a file and load it before the script is started.
However, loading the object automatically also loads all the referenced
namespaces (from the slow network share) which is undesirable for this use
case.
Cheers,
Mario
[[alternative HTML version deleted]]
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel