所有,我想知道以下内容是否能让我准确评估这些功能的运行时间。如果我知道复制是否顺序完成,我会对结果充满信心,但我不知道。感谢。
system.time(replicate(8000,function1(4,5)))
system.time(replicate(8000,function2(4,5)))
system.time(replicate(8000,function3(4,5)))
答案 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
包,它可以更精确地计算运行时间。