IniziaInizia gratis

Come varia il tempo di elaborazione al variare della dimensione dei dati?

Se devi elaborare tutti gli elementi di due insiemi di dati e uno dei due è più grande, quello più grande richiederà più tempo. Tuttavia, è importante capire che il “quanto” tempo in più non è sempre direttamente proporzionale a “quanto” è più grande. Cioè, se hai due insiemi di dati e uno è il doppio dell’altro, non è garantito che quello più grande impiegherà il doppio del tempo. Potrebbe richiedere 1,5 volte il tempo oppure quattro volte tanto. Dipende dalle operazioni utilizzate per elaborare l’insieme di dati.

In questo esercizio userai il pacchetto microbenchmark, già trattato nel corso Writing Efficient R Code.

Nota: i numeri sono indicati in notazione scientifica $$1e5 = 1 * 10^5 = 100,000$$

Questo esercizio fa parte del corso

Elaborazione scalabile dei dati in R

Visualizza il corso

Istruzioni dell'esercizio

  • Carica il pacchetto microbenchmark.
  • Usa la funzione microbenchmark() per confrontare i tempi di ordinamento di vettori casuali.
  • Chiama plot() su mb.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Load the microbenchmark package
___

# Compare the timings for sorting different sizes of vector
mb <- ___(
  # Sort a random normal vector length 1e5
  "1e5" = sort(rnorm(1e5)),
  # Sort a random normal vector length 2.5e5
  "2.5e5" = sort(rnorm(2.5e5)),
  # Sort a random normal vector length 5e5
  "5e5" = sort(rnorm(5e5)),
  "7.5e5" = sort(rnorm(7.5e5)),
  "1e6" = sort(rnorm(1e6)),
  times = 10
)

# Plot the resulting benchmark object
___(mb)
Modifica ed esegui il codice