Evaluación de rendimiento con microbenchmark
Dado que la motivación principal de Rcpp es el rendimiento, necesitas poder medir con precisión cuánto tarda en ejecutarse tu código. Para ello usarás la función microbenchmark() del paquete microbenchmark.
microbenchmark() recibe expresiones con nombre como argumentos, ejecuta cada expresión un número determinado de veces (100 por defecto) en orden aleatorio y devuelve estadísticas resumidas. En este curso, solo nos interesa la columna median.
En tu espacio de trabajo tienes disponible un vector x formado por 100.000 números aleatorios normales estándar.
Este ejercicio forma parte del curso
Optimizar código de R con Rcpp
Instrucciones del ejercicio
- Carga el paquete
microbenchmark. - Escribe una función
sum_loop()que calcule la suma de todos los elementos de un vector usando un bucleforde R. - Verifica que obtienes el mismo resultado que con la función
sum()usando la funciónall.equal(). - Compara el rendimiento con
microbenchmark().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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))