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順次です。したがって、はい、この点で非常に正確な評価です。sapplyfor-loopC

microbenchmark実行時間をさらに正確に計算するパッケージを試すこともできます。

于 2015-02-23T23:00:40.767 に答える