Zacznij terazZacznij za darmo

Benchmarking z microbenchmark

Główną motywacją do korzystania z Rcpp jest wydajność, dlatego ważne jest dokładne mierzenie czasu wykonania kodu. W tym celu skorzystamy z funkcji microbenchmark() z pakietu microbenchmark.

microbenchmark() przyjmuje nazwane wyrażenia jako argumenty, wykonuje każde z nich określoną liczbę razy (domyślnie 100) w losowej kolejności i zwraca podstawowe statystyki podsumowujące. W tym kursie interesuje nas przede wszystkim kolumna median.

W twoim środowisku pracy dostępny jest wektor x złożony ze 100 000 liczb losowych o standardowym rozkładzie normalnym.

To ćwiczenie jest częścią kursu

Optymalizacja kodu R za pomocą Rcpp

Zobacz kurs

Instrukcje do ćwiczenia

  • Wczytaj pakiet microbenchmark.
  • Napisz funkcję sum_loop(), która oblicza sumę wszystkich elementów wektora za pomocą pętli for w R.
  • Zweryfikuj, czy otrzymujesz ten sam wynik co funkcja sum(), używając funkcji all.equal().
  • Porównaj wydajność obu podejść za pomocą microbenchmark().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod