2015-02-20 2 views
0

Мне нужно загружать библиотеку каждый раз, когда я создаю новый RConnection. Можно ли предварительно загрузить его, когда я запустил RServe?Как запустить RServe с предварительной загрузкой библиотеки

Загрузка выполняется каждый раз, когда новое RConnection делает его медленнее.

+0

Пробовал так: Rserve (отладочный = FALSE, порт = 6312, Eval = библиотеки (прогноз), ждать = FALSE) Но это не помогло ... Нужна помощь для запуска Rserve с предварительно загруженной библиотекой. – Nitin

+0

Это похоже на дубликат вопроса: http://stackoverflow.com/questions/31433840/rserve-share-library-code –

ответ

0

Наконец, после всех исследований я обнаружил, что RConnection может быть загружен только библиотекой, и каждый RConnection должен быть инициализирован всеми библиотеками и пакетами.

Нам просто нужно оптимизировать то, как мы используем наше RConnection.

+2

Это просто неправда - Rserve часто является пользователем, чтобы избежать этих накладных расходов. –

4

Да, вы можете использовать опции конфигурации eval или source или --RS-source <file>. Все, что вы загрузите таким образом, предварительно загружено на сервер, прежде чем он начнет прослушивать подключения.

+0

Вот пример того, что это будет выглядеть на Linux: 'R CMD Rserve --RS-источник ~/Desktop/SomeApplication/rserve-конфигурации/SomeApplication.conf' Капля это в Баш скрипт, и вы можете запустите сервер со всеми загруженными библиотеками. –

+0

@ DanielNeel Вы не путаете '-RS-conf' с' -RS-source', который AFAIK должен указывать на R-файл. – jangorecki

+0

@jangorecki Возможно, я не уверен - у меня нет доступа к моей настройке R в настоящее время. Если кто-нибудь сможет это подтвердить, я могу отредактировать свой комментарий. –

2

Возможно, это не работает, потому что вам не хватает кавычек по имени библиотеки. Другой способ сделать это, чтобы положить на Eval линию внутри /etc/Rserve.conf так:

eval library('lib1'); library('lib2'); library('lib3') 
Смежные вопросы