Benchmarking mit microbenchmark
Da die Hauptmotivation für Rcpp Performance ist, musst du genau messen können, wie lange dein Code für die Ausführung braucht. Dafür verwendest du die Funktion microbenchmark() aus dem Paket microbenchmark.
microbenchmark() nimmt benannte Ausdrücke als Argumente, führt jeden Ausdruck eine vorgegebene Anzahl von Malen (standardmäßig 100) in zufälliger Reihenfolge aus und gibt zusammenfassende Statistiken zurück. In diesem Kurs interessiert uns nur die Spalte median.
Ein Vektor x mit 100.000 standardnormalverteilten Zufallszahlen ist in deinem Workspace verfügbar.
Diese Übung ist Teil des Kurses
R-Code mit Rcpp optimieren
Anleitung zur Übung
- Lade das Paket
microbenchmark. - Schreibe eine Funktion
sum_loop(), die die Summe aller Elemente in einem Vektor mit einer R-for-Schleife berechnet. - Überprüfe mit der Funktion
all.equal(), dass du dasselbe Ergebnis wie mit der Funktionsum()erhältst. - Vergleiche die Performance mit
microbenchmark().
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))