Mesurer les performances avec microbenchmark
Comme la principale motivation de Rcpp est la performance, vous devez pouvoir mesurer précisément le temps d’exécution de votre code. Vous allez utiliser la fonction microbenchmark() du package microbenchmark à cet effet.
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 renvoie des statistiques récapitulatives. Dans ce cours, nous nous intéressons uniquement à la colonne median.
Un vecteur x composé de 100 000 nombres aléatoires suivant une loi normale centrée-réduite est disponible dans votre espace de travail.
Cet exercice fait partie du cours
Optimiser du code R avec Rcpp
Instructions
- Chargez le package
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 qu’avec la fonction
sum()en utilisant la fonctionall.equal(). - Comparez les performances avec
microbenchmark().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))