У меня есть сценарий с самописными функциями (без сюжетов). Когда я копирую этот скрипт в консоль R-Studio, для выполнения требуется возраст, но когда я использую source("Helperfunctions.R")
, это занимает не больше секунды.Почему скорость источника отличается от строки строки консоли RStudio?
Вопрос: Откуда возникает разница в скорости?
Я знаю два различий между запущенной кодой через source()
функции против ввода кода в консоли R-Studio:
От ?source
:
Поскольку выражения не выполняется на верхнем уровне , авто-печать не выполняется.
Я так понимаю: source()
будет не сюжетных графики (если конкретизированы, например, с print(plot)
), в то время как консольные коды R Студийных будут всегда построить графики. Я уверен, что это повлияет на скорость выполнения в определенной степени, но в моем случае это кажется неуместным, потому что почти нет разговоров по сюжету.
И:
(...) полный файл анализируется, прежде чем какой-либо из него запускается
Я работал с R
на некоторое время теперь, но я не убедитесь, что это актуально для скорости, которую я имею. Возможно ли, что полный анализ всего кода «до того, как он будет запущен» ускоряет выполнение скриптов моих вспомогательных функций в сотни раз?
Редактировать: Я использую R версию 3.2.3.
R должен анализировать ваш код независимо от того, будет ли он источником сразу, или если вы делаете это по очереди. Вы используете Rgui? Что именно длится долго? – Roland
Я использую RStudio. Я всегда запускаю свои скрипты с помощью 'source (" Helperfunctions.R ")', это быстро. Однако, когда я копирую содержимое Helperfunctions.R и выполняю код напрямую, для запуска кода требуется возраст. Помогает ли это, @ Роланд? –
Я наблюдал то же самое и не знаю причины. Я думаю, что есть что-то в этом форуме на форумах поддержки RStudio. – Roland