CommencerCommencer gratuitement

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

Afficher le cours

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 boucle for en R.
  • Vérifiez que vous obtenez le même résultat qu’avec la fonction sum() en utilisant la fonction all.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))
Modifier et exécuter le code