Benchmarking with microbenchmark
Because the main motivation for Rcpp
is performance, you need to be able to accurately measure how long your code takes to run. You will use the microbenchmark()
function from the microbenchmark
package for this purpose.
microbenchmark()
takes named expressions as arguments, executes each expression a given number of times (100 by default) in a random order, and returns some summary statistics. In this course, we only care about the median
column.
A vector x
consisting of 100,000 standard normal random numbers is available in your workspace.
This exercise is part of the course
Optimizing R Code with Rcpp
Exercise instructions
- Load the
microbenchmark
package. - Write a function
sum_loop()
that calculates the sum of all the elements in a vector using an Rfor
loop . - Verify that you get the same result with the
sum()
function using theall.equal()
function. - Compare the performance with
microbenchmark()
.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# 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))