НачатьНачать бесплатно

Замер времени — предварительное выделение памяти

В предыдущем упражнении наращивание вектора занимало около 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(___ <- ___)
Редактировать и запускать код