始める無料で始める

microbenchmark でベンチマークを取る

Rcpp の主な目的は性能向上です。そのため、コードの実行にどれだけ時間がかかるかを正確に計測できる必要があります。この目的のために、microbenchmark パッケージの microbenchmark() 関数を使います。

microbenchmark() は、名前付きの式を引数として受け取り、各式を(デフォルトでは100回)ランダムな順序で実行し、要約統計量を返します。本コースでは median 列だけを確認します。

標準正規乱数10万個からなるベクトル x がワークスペースに用意されています。

この演習はコースの一部です

Rcpp で R コードを最適化する

コースを見る

演習の手順

  • microbenchmark パッケージを読み込みます。
  • R の for ループを使って、ベクトル内の全要素の合計を計算する関数 sum_loop() を作成します。
  • sum()all.equal() を使って、同じ結果になることを確認します。
  • microbenchmark() で性能を比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Load microbenchmark
___

# Define the function sum_loop
sum_loop <- function(x) {
  result <- 0
  ___
  result
}

# Check for equality 
___(sum_loop(x), sum(x))

# Compare the performance
___(sum_loop = sum_loop(x), R_sum = sum(x))
コードを編集して実行