CommencezCommencez gratuitement

É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

Voir le cours

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