ПочатиПочніть безкоштовно

Вимірювання часу — попереднє виділення

У попередній вправі нарощування вектора зайняло приблизно 2 секунди. Скільки часу потрібно, якщо ми заздалегідь виділимо пам'ять для вектора? Функція 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
}

Ця вправа є частиною курсу

Ефективне програмування R

Переглянути курс

Інструкції до вправи

Функція pre_allocate() доступна у вашому робочому середовищі.

  • За допомогою system.time() визначте, скільки часу займає виконання pre_allocate(n). Використайте прийом із <-, щоб зберегти результат в об'єкті res_allocate.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)
Редагувати та запускати код