运行时比较的准确性

时间:2015-02-23 22:54:59

标签: r performance replicate

所有,我想知道以下内容是否能让我准确评估这些功能的运行时间。如果我知道复制是否顺序完成,我会对结果充满信心,但我不知道。感谢。

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

1 个答案:

答案 0 :(得分: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包,它可以更精确地计算运行时间。