1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wydajny kod w R

Connected

ćwiczenie

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
}

Instrukcje

100 XP

Funkcja pre_allocate() jest dostępna w twoim środowisku roboczym.

  • Używając system.time(), sprawdź, ile czasu zajmuje uruchomienie pre_allocate(n). Zastosuj trick z <-, aby zapisać wynik w obiekcie res_allocate.