Get startedGet started for free

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

View Course

Exercise instructions

  • Load the microbenchmark package.
  • Write a function sum_loop() that calculates the sum of all the elements in a vector using an R for loop .
  • Verify that you get the same result with the sum() function using the all.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))
Edit and Run Code