# 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.