【发布时间】:2014-03-07 11:31:54
【问题描述】:
我写了这个“坏”函数(自愿慢)来构建一个向量并测试执行时间:
f <- function(n){
vec <- c()
for (i in 1:n) {
vec <- c(vec, i)
}
}
我认为如果我将循环的大小乘以 10,那么函数的执行时间会成比例地增加。但是我们可以看到执行时间完全不成比例,甚至非常优越:
> system.time(f(1e+04))
utilisateur système écoulé
0.14 0.00 0.14
> system.time(f(1e+05))
utilisateur système écoulé
13.35 0.00 13.49
> system.time(f(1e+06))
Timing stopped at: 1322.7 0.29 1338.59
也许这是一个基本的计算概念,但我想知道为什么这个循环的执行时间(但我认为它通常与循环相同)与循环的大小不成比例?
谢谢
【问题讨论】:
标签: r performance loops