LoslegenKostenlos loslegen

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

Kurs anzeigen

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 Funktion sum() 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))
Code bearbeiten und ausführen