logo

Rでのコード実行時間の測定とベンチマーク方法 📂R

Rでのコード実行時間の測定とベンチマーク方法

概要

MatlabRは明らかに統計分析に特化しているプログラミング言語だけど、全ての言語と同じように速度に無関心ではない。速度が強みではないとしても、ベンチマーキングはできるべきだ。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("계산 끝")
})

実行結果は以下の通りだ。

20190816\_144557.png