1.1.0
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
Default Behavior Changes (User Facing)
- 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
Noteworthy
- a new dependency
statistex
will show up - it's a part of continued efforts to extract reusable libraries from Benchee.