Zamanlamalar - ön ayırma
Önceki egzersizde, vektörü büyütmek yaklaşık 2 saniye sürmüştü.
Peki vektörü önceden ayırdığımızda ne kadar sürer? pre_allocate() fonksiyonu aşağıda tanımlanmıştır.
n <- 30000
# Hızlı kod
pre_allocate <- function(n) {
x <- numeric(n) # Önceden ayır
for(i in 1:n)
x[i] <- rnorm(1)
x
}
Bu egzersiz, kursun bir parçasıdır
Verimli R Kodu Yazma
Egzersiz talimatları
pre_allocate() fonksiyonu çalışma alanında hazır.
system.time()kullanarakpre_allocate(n)çalıştırmanın ne kadar sürdüğünü bul. Sonucures_allocatenesnesinde saklamak için<-hilesini kullan.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)