1

总而言之,我想知道以下内容是否会给我对这些函数的运行时间的准确评估。如果我知道复制是否按顺序完成,我会对结果充满信心,但我不知道。谢谢。

system.time(replicate(8000,function1(4,5)))
system.time(replicate(8000,function2(4,5)))
system.time(replicate(8000,function3(4,5)))
4

1 回答 1

2

如果你检查你的源代码,replicate你会看到是这样的:

> replicate
function (n, expr, simplify = "array") 
sapply(integer(n), eval.parent(substitute(function(...) expr)), 
    simplify = simplify)
<bytecode: 0x000000000b3b1ee8>
<environment: namespace:base>

因为它sapply在其源代码中使用,所以是的,它是顺序的,因为sapply它实际上是for-loop写在C. 所以,是的,在这方面这是一个相当准确的评估。

您也可以尝试microbenchmark更精确地计算运行时间的软件包。

于 2015-02-23T23:00:40.767 回答