IniziaInizia gratis

Benchmarking con microbenchmark

Dato che la principale motivazione per usare Rcpp è la performance, devi saper misurare con precisione quanto tempo impiega il tuo codice a eseguire. A questo scopo userai la funzione microbenchmark() del pacchetto microbenchmark.

microbenchmark() accetta espressioni con nome come argomenti, esegue ciascuna espressione un certo numero di volte (100 per impostazione predefinita) in ordine casuale e restituisce alcune statistiche di riepilogo. In questo corso, ci interessa solo la colonna median.

Nel tuo workspace è disponibile un vettore x composto da 100.000 numeri casuali normali standard.

Questo esercizio fa parte del corso

Ottimizzare il codice R con Rcpp

Visualizza il corso

Istruzioni dell'esercizio

  • Carica il pacchetto microbenchmark.
  • Scrivi una funzione sum_loop() che calcoli la somma di tutti gli elementi di un vettore usando un ciclo for in R.
  • Verifica di ottenere lo stesso risultato con la funzione sum() utilizzando la funzione all.equal().
  • Confronta le prestazioni con microbenchmark().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice