Benchmarking com microbenchmark
Como a principal motivação do Rcpp é desempenho, você precisa medir com precisão quanto tempo seu código leva para rodar. Você usará a função microbenchmark() do pacote microbenchmark para esse fim.
microbenchmark() recebe expressões nomeadas como argumentos, executa cada expressão um determinado número de vezes (100 por padrão) em uma ordem aleatória e retorna algumas estatísticas resumidas. Neste curso, vamos nos importar apenas com a coluna median.
Um vetor x contendo 100.000 números aleatórios de distribuição normal padrão está disponível no seu workspace.
Este exercicio faz parte do curso
Otimizando código R com Rcpp
Instruções do exercicio
- Carregue o pacote
microbenchmark. - Escreva uma função
sum_loop()que calcule a soma de todos os elementos de um vetor usando um loopforem R. - Verifique se você obtém o mesmo resultado com a função
sum()usando a funçãoall.equal(). - Compare o desempenho com
microbenchmark().
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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))