总而言之,我想知道以下内容是否会给我对这些函数的运行时间的准确评估。如果我知道复制是否按顺序完成,我会对结果充满信心,但我不知道。谢谢。
system.time(replicate(8000,function1(4,5)))
system.time(replicate(8000,function2(4,5)))
system.time(replicate(8000,function3(4,5)))
总而言之,我想知道以下内容是否会给我对这些函数的运行时间的准确评估。如果我知道复制是否按顺序完成,我会对结果充满信心,但我不知道。谢谢。
system.time(replicate(8000,function1(4,5)))
system.time(replicate(8000,function2(4,5)))
system.time(replicate(8000,function3(4,5)))
如果你检查你的源代码,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
更精确地计算运行时间的软件包。