Pomiar czasu – wstępna alokacja
W poprzednim ćwiczeniu rozbudowywanie wektora zajęło około 2 sekund.
Ile czasu zajmie to samo z wcześniejszą alokacją wektora? Poniżej zdefiniowana jest funkcja pre_allocate().
n <- 30000
# Fast code
pre_allocate <- function(n) {
x <- numeric(n) # Pre-allocate
for(i in 1:n)
x[i] <- rnorm(1)
x
}
To ćwiczenie jest częścią kursu
Wydajny kod w R
Instrukcje do ćwiczenia
Funkcja pre_allocate() jest dostępna w twoim środowisku roboczym.
- Używając
system.time(), sprawdź, ile czasu zajmuje uruchomieniepre_allocate(n). Zastosuj trick z<-, aby zapisać wynik w obiekcieres_allocate.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)