Message-ID: <CAB8pepz59QBmxebu_LFdo-K+RDvK8U248RhqRH6X=TL0yb9GPQ@mail.gmail.com>
Date: 2020-07-20T08:15:07Z
From: Abby Spurdle
Subject: Speed-up/Cache loadNamespace()
In-Reply-To: <CALUQZLwKCy5Wvmw10VSr=CvV5XUJ7AnG4davKS4XtmqvNK84PA@mail.gmail.com>
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