Bắt đầu ngayBắt đầu miễn phí

Đ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

Xem khóa học

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ặp for củ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àm all.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))
Chỉnh sửa và Chạy Mã