为什么源速度与 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
语言。
我有一个带有自写函数的脚本(没有情节)。当我将该脚本复制粘贴到 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
语言。