R/bench-compare.r
bench_compare.Rd
These functions support the comparison of results and timings across multiple sources.
bench_tbls(tbls, op, ..., times = 10) compare_tbls(tbls, op, ref = NULL, compare = equal_data_frame, ...) compare_tbls2(tbls_x, tbls_y, op, ref = NULL, compare = equal_data_frame, ...) eval_tbls(tbls, op) eval_tbls2(tbls_x, tbls_y, op)
tbls, tbls_x, tbls_y | A list of |
---|---|
op | A function with a single argument, called often with each
element of |
… | For For |
times | For benchmarking, the number of times each operation is repeated. |
ref | For checking, an data frame to test results against. If not
supplied, defaults to the results from the first |
compare | A function used to compare the results. Defaults to
|
eval_tbls()
: a list of data frames.
compare_tbls()
: an invisible TRUE
on success, otherwise
an error is thrown.
bench_tbls()
: an object of class
microbenchmark::microbenchmark()
src_local()
for working with local data
# NOT RUN { if (require("microbenchmark") && has_lahman()) { lahman_local <- lahman_srcs("df", "sqlite") teams <- lapply(lahman_local, function(x) x %>% tbl("Teams")) compare_tbls(teams, function(x) x %>% filter(yearID == 2010)) bench_tbls(teams, function(x) x %>% filter(yearID == 2010)) # You can also supply arbitrary additional arguments to bench_tbls # if there are other operations you'd like to compare. bench_tbls(teams, function(x) x %>% filter(yearID == 2010), base = subset(Lahman::Teams, yearID == 2010)) # A more complicated example using multiple tables setup <- function(src) { list( src %>% tbl("Batting") %>% filter(stint == 1) %>% select(playerID:H), src %>% tbl("Master") %>% select(playerID, birthYear) ) } two_tables <- lapply(lahman_local, setup) op <- function(tbls) { semi_join(tbls[[1]], tbls[[2]], by = "playerID") } # compare_tbls(two_tables, op) bench_tbls(two_tables, op, times = 2) } # }