microbenchmark ile karşılaştırma
Rcpp paketinin ana motivasyonu performans olduğundan, kodunun çalışmasının ne kadar sürdüğünü doğru biçimde ölçebilmen gerekir. Bu amaçla microbenchmark paketindeki microbenchmark() fonksiyonunu kullanacaksın.
microbenchmark(), bağımsız değişken olarak adlandırılmış ifadeler alır, her ifadeyi verilen sayıda (varsayılan olarak 100) rastgele bir sırayla çalıştırır ve özet istatistikler döndürür. Bu derste yalnızca median sütunuyla ilgileneceğiz.
Çalışma alanında, 100.000 standart normal rassal sayıdan oluşan bir x vektörü hazır durumda.
Bu egzersiz, kursun bir parçasıdır
Rcpp ile R Kodunu Optimize Etme
Egzersiz talimatları
microbenchmarkpaketini yükle.- Bir R
fordöngüsü kullanarak bir vektördeki tüm öğelerin toplamını hesaplayansum_loop()fonksiyonunu yaz. sum()fonksiyonuyla aynı sonucu aldığınıall.equal()fonksiyonunu kullanarak doğrula.- Performansı
microbenchmark()ile karşılaştır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Load microbenchmark
___
# Define the function sum_loop
sum_loop <- function(x) {
result <- 0
___
result
}
# Check for equality
___(sum_loop(x), sum(x))
# Compare the performance
___(sum_loop = sum_loop(x), R_sum = sum(x))