私は常に、とのベンチ マーキングの精度の欠如に少し悩まされてsystem.time
おりrbenchmark
(タイミングの精度が不足している可能性があるという点で)、Hadley がmicrobenchmark
最近パッケージを参照しているのを見ました。そこで、以下に示すように回転させることにしました。私はmean
反対し、よりもはるかに良い成績を収めることf <- function(x) {sum(x)/length(x)}
を期待していましたが、私が理解しているように、結果はこれが真実であることを示していません.mean
f
- 結果を誤解していますか?
- f は実際に平均より速いですか?
- マイクロベンチマークはまだベータ段階にあり、これを解決する必要がありますか?
Win 7 マシンで R2.15 を実行しています (OS によってマイクロベンチマークのタイミングが異なるため)。
結果
Unit: microseconds
expr min lq median uq max
1 f(x) 19.130 20.529 20.529 20.996 286.00
2 mean(x) 28.927 29.860 30.327 30.327 672.31
コード
library(microbenchmark)
x <- 1:10000
f <- function(x) {sum(x)/length(x)}
mean(x)
res <- microbenchmark(
mean(x),
f(x),
times=1000L)
print(res)
boxplot(res)