Étalonnage avec microbenchmark
Comme la principale motivation derrière Rcpp est la performance, vous devez pouvoir mesurer avec précision le temps d'exécution de votre code. Vous utiliserez la fonction microbenchmark() du paquet microbenchmark à cette fin.
microbenchmark() prend des expressions nommées comme arguments, exécute chaque expression un certain nombre de fois (100 par défaut) dans un ordre aléatoire, puis retourne des statistiques sommaires. Dans ce cours, nous nous intéressons seulement à la colonne median.
Un vecteur x composé de 100 000 nombres aléatoires suivant la loi normale standard est disponible dans votre espace de travail.
Cette activité fait partie du cours
Optimiser le code R avec Rcpp
Instructions de l’exercice
- Chargez le paquet
microbenchmark. - Écrivez une fonction
sum_loop()qui calcule la somme de tous les éléments d'un vecteur à l'aide d'une boucleforen R. - Vérifiez que vous obtenez le même résultat avec la fonction
sum()en utilisant la fonctionall.equal(). - Comparez la performance avec
microbenchmark().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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))