開始使用免費開始

使用 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))
編輯並執行程式碼