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 use Formatter.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 using formatter_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 and write 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 generated output/1 method, but Formatter.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