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