R'da yüksek performanslı programlama III: Bellek ayırma

R'da yüksek performanslı programlama III: Bellek ayırma

Bu yazıda R programlamanın performansını etkileyen basit yöntemlerden olan bellek ayırma konusuna değiniyoruz.
Onur Boyar07 Nis 2021

R programlamanın performansını etkileyen faktörlerden olan bellek ayırma meselesine daha önce C veya Java gibi dillerde çalışanlar muhtemelen aşinadır. Bu işlem kısaca çalışmaya başlamadan önce çalışmanın ihtiyaç duyacağı belleği atamaktan ibaret. Böylelikle gerçekleştirilecek işlemler daha hızlı bir biçimde işleme konabiliyor. Küçük bir örnek bu yaklaşımı anlamanıza yardımcı olacaktır.

N <- 1e4
data_series1 <- 1
system.time(for (j in 2:N) {data_series1 <- c(data_series1, data_series1[j-1] + sample(-5:5, size = 1))})

#   user  system elapsed 
#   0.09    0.00    0.09 

Yukarıda boş bir vektör yaratıp önceden bellek ayırmadık. Şimdi ise bu işlemi gerçekleştirip bakalım.

N <- 1e4
data_series2 <- numeric(N)
data_series2[1] <- 1
system.time(for (j in 2:N) {data_series2[j] <- data_series2[j-1] + sample(-5:5, size = 1)})

#   user  system elapsed 
#   0.03    0.00    0.03 

“elapsed” verileri karşılaştırıldığında performans farkı net bir biçimde görülebiliyor. Çalışma kapsamı genişledikçe milisaniyeler düzeyindeki farklılıkların dakikalar/saatler düzeyine çıkabileceğinin bilincinde olmak ve yüksek performanslı programlama için bellek ayırmanın önemini kavramak bu açıdan oldukça değerli.

 

Veri bilimi hakkında daha geniş ve kapsamlı bilgiye erişmek, kariyerinizde fark yaratacak adımlar atmak isterseniz Miuul'un sunduğu Data Scientist Path eğitimine göz atabilirsiniz.

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.