benchee v1.1.0 Release Notes

Release Date: 2022-03-08 // about 2 years ago
  • Long time, huh? I'm sorry, combination of priorities, difficult to fix bugs, stress and arm problems kept me away too long. ๐Ÿ›  This release brings major features long developed and now finally released (reduction measurements + profiler after run), along with a critical bugfix around measurement accuracy for very fast functions (nanoseconds).

    ๐Ÿ”‹ Features (User Facing)

    • ๐Ÿ“„ Reduction counting/measurements was implemented. Basically, it's a rather stable unit of execution implemented by the BEAM that measures in more abstract manner how much work was done. It's helpful, as it shouldn't be affected by load on the system. Check out the docs.
    • ๐Ÿ‘€ You can now dive straight into profiling from your benchmarks by using the profiling feature. See the docs - thanks @pablocostass

    0๏ธโƒฃ Default Behavior Changes (User Facing)

    • 0๏ธโƒฃ measuring function call overhead is now turned off by default, as it only helps with extreme nano benchmarks and has some potential for causing wrong results, so it should only be opt in. We now also print out the measured overhead for vsibility.

    ๐Ÿ›  Bugfixes (User Facing)

    • Benchee now correctly looks for the time resolution as reported by :erlang.system_info(:os_monotonic_time_source) to accomodate when determining if a measurement is "precise" enough. Benche also works around an erlang bug we discovered present in erlang <= 22.2. Issue for reference.
    • ๐Ÿšš The annoying stacktrace warning has been removed - thanks @mad42


    • a new dependency statistex will show up - it's a part of continued efforts to extract reusable libraries from Benchee.

Previous changes from v1.0.1

  • ๐Ÿ›  Bugfixes (User Facing)

    • When memory measurements were actually different extended statistics was displayed although the option was not provided. Now correctly only displayed if the option is provided and values actually had variance.