使用 microbenchmark 做效能評測
由於 Rcpp 的主要動機是提升效能,你需要能夠準確量測程式碼執行所需的時間。為此,你會使用 microbenchmark 套件中的 microbenchmark() 函式。
microbenchmark() 會將具名的運算式作為引數,隨機順序執行每個運算式指定次數(預設為 100 次),並回傳一些摘要統計量。在本課程中,我們只在意 median 欄位。
你的工作環境中已提供一個向量 x,包含 100,000 個標準常態亂數。
本練習屬於課程
用 Rcpp 最佳化 R 程式碼
練習說明
- 載入
microbenchmark套件。 - 撰寫函式
sum_loop(),使用 R 的for迴圈計算向量中所有元素的總和。 - 使用
all.equal()函式,驗證你是否得到與sum()函式相同的結果。 - 使用
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))