全体として、以下がこれらの関数の実行時間を正確に評価するかどうか疑問に思っています。複製が順番に行われたかどうかを知っていれば、結果に自信がありますが、わかりません。ありがとう。
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
実行時間をさらに正確に計算するパッケージを試すこともできます。