Benchmark chunks

hook_benchmark adds the benchmark feature to chunks. To benchmark a chunk, specifying benchmark=TRUE as a chunk option.

Basic usage

library(chunkhooks)
hook_benchmark()
# benchmark=TRUE is specified as a chunk option
sum(seq(100))
#> [1] 5050

bench1: 5ms

As the above result shows, output format contains chunk label. I recommend specifying chunk options explicitly. Note that this function is experimental, and format may change in the future.

Formatting results

If you do not like the default formatting, you may provide original function to the format argument. The function takes a result of a benchmark in seconds as the first argument, and a list of current chunk options as the second argument. The example below shows the benchmark result as is. Make sure the formatting function returns a string.

hook_benchmark(format = function(x, options) as.character(x))
sum(seq(100))
#> [1] 5050

0.002

Insert results in body text

If you need to insert the result with the text, use chunkhooks::benchmarks environment. This environment records all the benchmark results in seconds. You can extract a result by specifying a chunk label.

For example, r benchmarks$bench1 gives 0.004.