Začněte nyníZačněte zdarma

Benchmarking s microbenchmark

Hlavním důvodem, proč používat Rcpp, je výkon – proto je důležité přesně měřit, jak dlouho tvůj kód běží. K tomu slouží funkce microbenchmark() z balíčku microbenchmark.

microbenchmark() přijímá pojmenované výrazy jako argumenty, spustí každý z nich zadaný počet opakování (ve výchozím nastavení 100) v náhodném pořadí a vrátí souhrnnou statistiku. V tomto kurzu nás zajímá pouze sloupec median.

V tvém pracovním prostředí je k dispozici vektor x složený ze 100 000 náhodných čísel se standardním normálním rozdělením.

Toto cvičení je součástí kurzu

Optimizing R Code with Rcpp

Zobrazit kurz

Pokyny k cvičení

  • Načti balíček microbenchmark.
  • Napiš funkci sum_loop(), která vypočítá součet všech prvků vektoru pomocí R smyčky for.
  • Pomocí funkce all.equal() ověř, že sum() vrací stejný výsledek jako sum_loop().
  • Porovnej výkon obou přístupů pomocí microbenchmark().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód