为什么源速度与RStudio控制台线路代码不同?

Ken*_*HBS 11 r rstudio

我有一个自编函数的脚本(没有绘图).当我将该脚本复制粘贴到R-Studio控制台时,执行source("Helperfunctions.R")需要很长时间,但是当我使用它时不会超过一秒钟.

问题:速度的差异来自哪里?

我知道通过source()函数运行代码与在R-Studio控制台上输入代码之间存在两个区别:

来自?source:

由于表达式不在顶层执行,因此不会进行自动打印.

我理解这个问题的方法:source()不会绘制图表(除非作了具体有例如print(plot)),而将R Studio控制台代码始终绘制图表.我确信这会在一定程度上影响执行速度,但这在我的情况下似乎无关紧要,因为几乎没有任何情节调用.

和:

(...)在运行任何文件之前解析完整文件

我已经和我一起工作R了一段时间,但我不确定这是否与我所拥有的速度问题相关.是否有可能在"运行任何代码之前"完全解析所有代码,将我的辅助函数脚本的执行速度提高一百倍?

编辑:我正在使用R版本3.2.3.

Ken*_*HBS 7

问题不是source()与控制台行代码.相反,它是RStudio如何将代码从源窗格发送到控制台的问题.

当我复制内容Helperfunctions.R并在RGui(而不是RStudio)中运行时,代码的执行速度几乎与我source("Helperfunctions.R")在RStudio中使用时的速度相同.

显然,代码行总是(?)在RStudio中需要比在RGui中更多的执行时间.即使您在控制台中执行几行时通常不会注意到时差,但是,当R Studio控制台中同时执行3.000行代码时,似乎会产生巨大的差异.

我的理解是,在source("Helperfunctions.R")RStudio源窗格中使用时,代码实际上并没有发送到RStudio控制台(这本来很慢),但实际上是直接用该R语言执行的.