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
Övningsinstruktioner
- Ladda paketet
microbenchmark. - Skriv en funktion
sum_loop()som beräknar summan av alla element i en vektor med hjälp av en Rfor-slinga. - Kontrollera att du får samma resultat med funktionen
sum()genom att använda funktionenall.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))