R Скрипт и библиотека предварительной загрузки? - PullRequest
2 голосов
/ 30 марта 2012

Я создал скрипт 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)
..
..

1 Ответ

5 голосов
/ 30 марта 2012

Если вы превратите свой скрипт в пакет (что вам все равно следует сделать, в более отдаленной перспективе ...), то вы можете использовать Imports только тех символов, которые вам нужны из пакетов, которые вы используете - что обычно немного быстрее, чем полная загрузка, как это делает Depends.

Таким образом, ключ к

  1. используйте пакет
  2. узнать о NAMESPACE
  3. import только символы, которые вам нужны.

Ортогональный подход состоит в том, чтобы не перезапускать и не экономить это время - вы можете использовать Rserve в качестве резидентного экземпляра R и просто подключиться к нему с помощью R-клиента. Вероятно, больше работы, хотя ...

...