benchee v0.14.0 Release Notes
Release Date: 2019-02-10 // about 5 years ago-
๐ Highlights of this release are a new way to specify formatter options closer to the formatters themselves as well as maximum precision measurements.
๐ฅ Breaking Changes (User Facing)
- โฌ๏ธ dropped support for Erlang 18.x
- Formatters no longer have an
output/1
method, instead useFormatter.output/3
please - ๐ Usage of
formatter_options
is deprecated, instead please use the new tuple way
๐ Features (User Facing)
- ๐ง Benchee now uses the maximum precision available to measure which on Linux and OSX is nanoseconds instead of microseconds. Somewhat surprisingly
:timer.tc/1
always cut down to microseconds although better precision is available. - The preferred way to specify formatters and their options is to specify them as a tuple
{module, options}
instead of usingformatter_options
. - ๐ New
Formatter.output/1
function that takes a suite and uses all configured formatters to output their results - โ Add the concept of a benchmarking title that formatters can pick up
- the displayed percentiles can now be adjusted
- inputs option can now be an ordered list of tuples, this way you can determine their order
- ๐ support FreeBSD properly (system metrics) - thanks @kimshrier
๐ Bugfixes (User Facing)
- โ Remove extra double quotes in operating system report line - thanks @kimshrier
๐ฅ Breaking Changes (Plugins)
- all reported times are now in nanoseconds instead of microseconds
- formatter methods
format
andwrite
now take 2 arguments each where the additional arguments is the options specified for this formatter so that you have direct access to it without peeling it from the suite - You can no longer
use Benchee.Formatter
- just adopt the behaviour (no more auto generatedoutput/1
method, butFormatter.output/3
takes that responsibility now)
๐ Features (Plugins)
- An optional title is now available in the suite for you to display
- Scenarios are now sorted already sorted (first by run time, then memory usage) - no need to sort them yourself!
- โ Add
Scenario.data_processed?/2
to check if either run time or memory data has had statistics generated