ÎncepețiÎncepe gratuit

Benchmarking cu microbenchmark

Deoarece motivul principal pentru utilizarea Rcpp este performanța, trebuie să poți măsura cu precizie cât timp durează rularea codului tău. În acest scop, vei folosi funcția microbenchmark() din pachetul microbenchmark.

microbenchmark() primește expresii cu nume ca argumente, execută fiecare expresie de un număr dat de ori (100 implicit) într-o ordine aleatorie și returnează câteva statistici rezumative. În acest curs, ne interesează doar coloana median.

În spațiul tău de lucru este disponibil un vector x format din 100.000 de numere aleatoare cu distribuție normală standard.

Acest exercițiu face parte din cursul

Optimizarea codului R cu Rcpp

Vezi cursul

Instrucțiuni pentru exercițiu

  • Încarcă pachetul microbenchmark.
  • Scrie o funcție sum_loop() care calculează suma tuturor elementelor dintr-un vector folosind o buclă for în R.
  • Verifică că obții același rezultat ca funcția sum() folosind funcția all.equal().
  • Compară performanța cu microbenchmark().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul