Zacznij terazZacznij za darmo

Jak czas przetwarzania zależy od rozmiaru danych?

Jeśli przetwarzasz wszystkie elementy dwóch zbiorów danych i jeden z nich jest większy, to przetworzenie go zajmie więcej czasu. Warto jednak pamiętać, że ta zależność nie jest zawsze wprost proporcjonalna. Innymi słowy, jeśli jeden zbiór danych jest dwa razy większy od drugiego, nie oznacza to, że przetworzenie go zajmie dokładnie dwa razy więcej czasu – może to być 1,5 raza dłużej albo nawet cztery razy dłużej. Wszystko zależy od tego, jakie operacje są wykonywane na danych.

W tym ćwiczeniu skorzystasz z pakietu microbenchmark, który był omawiany w kursie Writing Efficient R Code.

Uwaga: Liczby są zapisane w notacji naukowej: $$1e5 = 1 * 10^5 = 100\,000$$

To ćwiczenie jest częścią kursu

Skalowalne przetwarzanie danych w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Załaduj pakiet microbenchmark.
  • Użyj funkcji microbenchmark(), aby porównać czasy sortowania losowych wektorów.
  • Wywołaj plot() na obiekcie mb.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod