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))