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
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țiaall.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))