Given an block of expressions in {} workout() individually times each expression in the group. workout_expressions() is a lower level function most useful when reading lists of calls from a file.

workout(expr, description = NULL)

workout_expressions(exprs, env = parent.frame(), description = NULL)

Arguments

expr

one or more expressions to workout, use {} to pass multiple expressions.

description

A name to label each expression, if not supplied the deparsed expression will be used.

exprs

A list of calls to measure.

env

The environment in which the expressions should be evaluated.

Examples

workout({ x <- 1:1000 evens <- x %% 2 == 0 y <- x[evens] length(y) length(which(evens)) sum(evens) })
#> # A tibble: 6 x 3 #> exprs process real #> <bch:expr> <bch:tm> <bch:tm> #> 1 x <- 1:1000 4.57µs 7.63µs #> 2 evens <- x%%2 == 0 31.49µs 33.38µs #> 3 y <- x[evens] 8.34µs 9.78µs #> 4 length(y) 1.14µs 2.62µs #> 5 length(which(evens)) 5.13µs 6.68µs #> 6 sum(evens) 3.22µs 4.53µs
# The equivalent to the above, reading the code from a file workout_expressions(as.list(parse(system.file("examples/exprs.R", package = "bench"))))
#> # A tibble: 6 x 3 #> exprs process real #> <bch:expr> <bch:tm> <bch:tm> #> 1 x <- 1:1000 2.95µs 5.25µs #> 2 evens <- x%%2 == 0 28.79µs 30.28µs #> 3 y <- x[evens] 8.07µs 9.54µs #> 4 length(y) 1.22µs 2.86µs #> 5 length(which(evens)) 4.87µs 6.44µs #> 6 sum(evens) 2.98µs 4.53µs