我在朋友的代码中发现了一些多余的括号,这确实减慢了执行时间。如果对此有什么解释的话。请查看这个示例代码
Python 也是一种(quesi)解释语言,不会受到此程序的影响。
# 0.370 seconds
x <- 0
while (x < 100000) {
10
x = x + 1
}
# 0.743 seconds
x <- 0
while (x < 100000) {
((((((((((10))))))))))
x = x + 1
}
While 阿克伦的评论 https://www.r-bloggers.com/speeding-up-parentheses-and-lots-more-in-r/谈论R v2.11.1
,事情并没有真正改变。
的帮助?paren https://stat.ethz.ch/R-manual/R-devel/library/base/html/Paren.html(括号和大括号),表示与其他一些语言不同,括号和大括号是 R 中的原始函数。这意味着当您编写a <- 1
, 1 只是 1。但是,如果你写a <- (1)
, 1 在函数内部。
因此,如果您要运行简单的计算,括号将花费更多时间(当您计算函数和数字时)。
library(microbenchmark)
microbenchmark("simple" = {a <- 1},
"parentheses" = {
a <- (1)})
Unit: nanoseconds
expr min lq mean median uq max neval cld
simple 0 100 89 100 100 700 100 a
parentheses 100 100 310 200 200 16000 100 a
sessionInfo()
R version 3.5.3 (2019-03-11)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)