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

Why is source speed different from RStudio console line code?

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

问题:速度的差异从何而来?

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

来自?source

Since expressions are not executed at the top level, auto-printing is not done.

我的理解方式是:source() 不会 绘制图形(除非使用 print(plot) 等具体说明),而 R Studio 控制台代码 始终绘制图形。我确信这会在一定程度上影响执行速度,但这对我来说似乎无关紧要,因为几乎没有任何情节调用。

并且:

(...) the complete file is parsed before any of it is run

我已经使用 R 一段时间了,但我不确定这是否与我遇到的速度问题有关。完全解析所有代码 "before any of it is run" 是否可以将我的辅助函数脚本的执行速度提高一百倍?

编辑:我使用的是 R 版本 3.2.3。

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

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

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

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