Kom igångKom igång gratis

Benchmarking med microbenchmark

Eftersom det primära skälet att använda Rcpp är prestanda, behöver du kunna mäta exakt hur lång tid din kod tar att köra. För det ändamålet använder du funktionen microbenchmark() från paketet microbenchmark.

microbenchmark() tar namngivna uttryck som argument, kör varje uttryck ett givet antal gånger (100 som standard) i slumpmässig ordning och returnerar sammanfattande statistik. I den här kursen fokuserar vi enbart på kolumnen median.

En vektor x med 100 000 slumpmässiga tal från en standardnormalfördelning finns tillgänglig i din arbetsmiljö.

Den här övningen är en del av kursen

Optimera R-kod med Rcpp

Visa kurs

Övningsinstruktioner

  • Ladda paketet microbenchmark.
  • Skriv en funktion sum_loop() som beräknar summan av alla element i en vektor med hjälp av en R for-slinga.
  • Kontrollera att du får samma resultat med funktionen sum() genom att använda funktionen all.equal().
  • Jämför prestandan med microbenchmark().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod