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
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čkyfor. - Pomocí funkce
all.equal()ověř, žesum()vrací stejný výsledek jakosum_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))