我在朋友的代码中夹了一些多余的括号,这确实减慢了执行时间。如果对此有任何解释。请查看此示例代码
Python也是一种(准)解释语言,不受此程序的影响。
# 0.370 seconds
x <- 0
while (x < 100000) {
10
x = x + 1
}
# 0.743 seconds
x <- 0
while (x < 100000) {
((((((((((10))))))))))
x = x + 1
}
答案 0 :(得分:1)
尽管akrun's comment谈论R v2.11.1
,但情况并没有真正改变。
?paren(括号和花括号)的帮助说,与某些其他语言不同,括号和花括号是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)