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
Instrukcje do ćwiczenia
- Załaduj pakiet
microbenchmark. - Użyj funkcji
microbenchmark(), aby porównać czasy sortowania losowych wektorów. - Wywołaj
plot()na obiekciemb.
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)