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)
expr | one or more expressions to workout, use |
---|---|
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. |
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