Rでのコード実行時間の測定とベンチマーク方法
概要
MATLABやRは明らかに統計解析に特化したプログラミング言語だが、どの言語もそうであるように速度に無関心というわけではない。速度が強みでなくてもベンチマークは行えるべきだ。Rでは単純にコード全体をsystem.time({})に入れて時間を計測できる。
例
次はエラトステネスの篩をRで実装し、$2*10^{5}$以下の奇数を30個取り出して素数かどうかを確認した後、その実行時間を計測するコードだ。
eratosthenes<-function(n){
residue<-2:n
while(n %in% residue){
p<-residue[1]
residue<-residue[as.logical(residue%%p)]
}
return(p)
}
set.seed(150421)
test = sample(2*1:10^5+1,30)
system.time({
for(n in test){
print(paste0("eratosthenes(",n,") = ",eratosthenes(n)))
}
print("계산 끝")
})
その実行結果は次のとおりだ。

