Đo hiệu năng với microbenchmark
Vì động lực chính của Rcpp là hiệu năng, bạn cần đo chính xác thời gian chạy của mã. Bạn sẽ dùng hàm microbenchmark() từ gói microbenchmark cho mục đích này.
microbenchmark() nhận các biểu thức có tên làm đối số, thực thi mỗi biểu thức một số lần nhất định (mặc định là 100) theo thứ tự ngẫu nhiên và trả về một số thống kê tóm tắt. Trong khóa học này, bạn chỉ cần quan tâm đến cột median.
Một vector x gồm 100.000 số ngẫu nhiên chuẩn đã có sẵn trong không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Tối ưu hóa mã R với Rcpp
Hướng dẫn bài tập
- Nạp gói
microbenchmark. - Viết hàm
sum_loop()để tính tổng tất cả phần tử trong một vector bằng vòng lặpforcủa R. - Xác minh rằng bạn nhận được cùng một kết quả với hàm
sum()bằng cách dùng hàmall.equal(). - So sánh hiệu năng với
microbenchmark().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))