Comece agoraComece grátis

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

Ver curso

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 loop for em R.
  • Verifique se você obtém o mesmo resultado com a função sum() usando a função all.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))
Editar e Executar Código