Skip to content

build(deps-dev): Bump benchee from 1.1.0 to 1.4.0#391

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/hex/benchee-1.4.0
Closed

build(deps-dev): Bump benchee from 1.1.0 to 1.4.0#391
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/hex/benchee-1.4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 21, 2025

Copy link
Copy Markdown
Contributor

Bumps benchee from 1.1.0 to 1.4.0.

Release notes

Sourced from benchee's releases.

1.4.0

Some nice features (pre_check: :all_same is cool) along with adding support for some new stuff (tprof) and fixing some bugs.

Features (User Facing)

  • pre_check now accepts the option :all_same - which raises if any job returns a value different from another for the same input. Useful when benchmarking multiple variants of the same function. Thanks to @​sabiwara!
  • Enable the tprof profiler that shipped with OTP 27, requires OTP 27+ and elixir 1.17+.

Bugfixes (User Facing)

  • Make gathering of system data more resilient, if the commands we ran didn't exist it may have crashed previously. Most notably, occurring on Windows 11 due to te removal of the tool we use to gather processor information. Now "N/A" is returned.
  • An incompatibility with the upcoming OTP 28 that'd emit a warning on newer elixir versions was removed. Thanks TBK145!

1.3.1

Small release to remove warnings for the upcoming elixir 1.17 as well as add proper solaris support.

Features (User Facing)

  • Solaris systems will now correctly be identified and have their CPU and memory parsed. Thanks to @​brianewell!

Bugfixes (User Facing)

1.3.0

A big swath of bug fixes and improvements. The highlights certainly are fixes and conveniences around saved benchmarks and loading them again via the new Benchee.report/1. The other big one is saving a lot of memory (and time!) when processing big inputs. Sadly the latter comes with some breaking changes for plugins, but they are well justified and shouldn't actually affect any plugin in practice.

There's also a known issue for elixir 1.14.0 to 1.16.0-rc.0 - read up about it.

Features (User Facing)

  • System information now includes whether or not the JIT is enabled (erlang docs).
  • Benchee now let's you know when it's calculating statistics or running the formatters. Helps when you wonder what's taking so long or blows up memory.
  • Benchee.report/1 introduced if you just want to load saved benchmarks and report on them (---> run formatters).
  • Configuration times will now be displayed in a more human friendly format (1 min 12 s vs. 1.2 min). Thanks to @​drobnyd.

Bugfixes (User Facing)

  • Memory usage should be massively reduced when dealing with larger sets of data in inputs or benchmarking functions. They were needlessly sent to processes calculating statistics or formatters which could lead to memory blowing up.
  • Similarly, inputs and benchmarking functions will no longer be saved when using the :save option, this makes it immensely faster and depending on the size of the data a lot slower (I have an example with a factor 200x for the size). The side effect of this is that you also can't use :load and run the benchmarks saved again from just the file, this was never an intended use case though (as loading happens after benchmarking by default). You also still should have the benchmarking script so it's also not needed.
  • Fix a bug where relative statistics would always rely on the inputs provided in the config, which can break when you load saved benchmarks but don't specify the inputs again.

Breaking Changes (Plugins)

Woopsie, didn't wanna do any of these in 1.x, sorry but there's good reason :( However, counting them as bugs.

  • Formatters have lost access to benchmarking functions and the inputs, this is to enable huge memory and run time savings when using a lot of data. I also believe they should not be needed for formatters, please get in touch if this is a problem so we can work it out. In detail this means:
    • Each Benchee.Scenario struct in a formatter will have :function and :input set to nil
    • The inputs list in Configuration retains the input names, but the values will be set to :scrubbed_see_1_3_0_changelog. It may be completely scrubbed in the future, use the newly introduced input_names instead if you need easy access to all the input names at once.
    • Technically speaking formatters haven't generally lost access, only if they are processed in parallel - so not if it's the only formatter or if it's used via a function (formatters: [fn suite -> MyFormatter.output(suite) end]. Still, should not be used or relied upon.

Features (Plugins)

  • jit_enabled? is exposed as part of the suite.system struct
  • Yes, Benchee.System is now a struct so feel easier about relying on the fields
  • Configuration now has an input_names key that holds the name of all inputs, for the reasoning, see above.
  • The more human friendly formats are accessible via Format.format_human/2 or Duration.format_human/1 (& friends)

... (truncated)

Changelog

Sourced from benchee's changelog.

1.4.0 (2025-04-14)

Some nice features (pre_check: :all_same is cool) along with adding support for some new stuff (tprof) and fixing some bugs.

Features (User Facing)

  • pre_check now accepts the option :all_same - which raises if any job returns a value different from another for the same input. Useful when benchmarking multiple variants of the same function. Thanks to @​sabiwara!
  • Enable the tprof profiler that shipped with OTP 27, requires OTP 27+ and elixir 1.17+.

Bugfixes (User Facing)

  • Make gathering of system data more resilient, if the commands we ran didn't exist it may have crashed previously. Most notably, occurring on Windows 11 due to te removal of the tool we use to gather processor information. Now "N/A" is returned.
  • An incompatibility with the upcoming OTP 28 that'd emit a warning on newer elixir versions was removed. Thanks TBK145!

1.3.1 (2024-06-05)

Small release to remove warnings for the upcoming elixir 1.17 as well as add proper solaris support.

Features (User Facing)

  • Solaris systems will now correctly be identified and have their CPU and memory parsed. Thanks to @​brianewell!

Bugfixes (User Facing)

1.3.0 (2023-12-22)

A big swath of bug fixes and improvements. The highlights certainly are fixes and conveniences around saved benchmarks and loading them again via the new Benchee.report/1. The other big one is saving a lot of memory (and time!) when processing big inputs. Sadly the latter comes with some breaking changes for plugins, but they are well justified and shouldn't actually affect any plugin in practice.

There's also a known issue for elixir 1.14.0 to 1.16.0-rc.0 - read up about it.

Features (User Facing)

  • System information now includes whether or not the JIT is enabled (erlang docs).
  • Benchee now let's you know when it's calculating statistics or running the formatters. Helps when you wonder what's taking so long or blows up memory.
  • Benchee.report/1 introduced if you just want to load saved benchmarks and report on them (---> run formatters).
  • Configuration times will now be displayed in a more human friendly format (1 min 12 s vs. 1.2 min). Thanks to @​drobnyd.

Bugfixes (User Facing)

  • Memory usage should be massively reduced when dealing with larger sets of data in inputs or benchmarking functions. They were needlessly sent to processes calculating statistics or formatters which could lead to memory blowing up.
  • Similarly, inputs and benchmarking functions will no longer be saved when using the :save option, this makes it immensely faster and depending on the size of the data a lot slower (I have an example with a factor 200x for the size). The side effect of this is that you also can't use :load and run the benchmarks saved again from just the file, this was never an intended use case though (as loading happens after benchmarking by default). You also still should have the benchmarking script so it's also not needed.
  • Fix a bug where relative statistics would always rely on the inputs provided in the config, which can break when you load saved benchmarks but don't specify the inputs again.

Breaking Changes (Plugins)

Woopsie, didn't wanna do any of these in 1.x, sorry but there's good reason :( However, counting them as bugs.

  • Formatters have lost access to benchmarking functions and the inputs, this is to enable huge memory and run time savings when using a lot of data. I also believe they should not be needed for formatters, please get in touch if this is a problem so we can work it out. In detail this means:
    • Each Benchee.Scenario struct in a formatter will have :function and :input set to nil
    • The inputs list in Configuration retains the input names, but the values will be set to :scrubbed_see_1_3_0_changelog. It may be completely scrubbed in the future, use the newly introduced input_names instead if you need easy access to all the input names at once.
    • Technically speaking formatters haven't generally lost access, only if they are processed in parallel - so not if it's the only formatter or if it's used via a function (formatters: [fn suite -> MyFormatter.output(suite) end]. Still, should not be used or relied upon.

Features (Plugins)

  • jit_enabled? is exposed as part of the suite.system struct
  • Yes, Benchee.System is now a struct so feel easier about relying on the fields
  • Configuration now has an input_names key that holds the name of all inputs, for the reasoning, see above.

... (truncated)

Commits
  • d0c148b make the pre check sample not fail the samples run
  • af3f33f bump version to 1.4.0
  • ce64b6a Prep 1.4.0 changelog
  • 9b7dd71 Link to architecture from the main README
  • ed8fd9b Rerender diagram output so that they are actually purple
  • 76efad4 rename diagrams to architecture and provide a more comprehensive README
  • f2cc19a Purplize diagrams
  • b86ff9f Add a small README explaining what is going on here
  • 8b75335 Add rendered diagrams
  • a0a5883 apply component fixes to container diagram
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [benchee](https://github.com/bencheeorg/benchee) from 1.1.0 to 1.4.0.
- [Release notes](https://github.com/bencheeorg/benchee/releases)
- [Changelog](https://github.com/bencheeorg/benchee/blob/main/CHANGELOG.md)
- [Commits](bencheeorg/benchee@1.1.0...1.4.0)

---
updated-dependencies:
- dependency-name: benchee
  dependency-version: 1.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file elixir Pull requests that update elixir code labels Oct 21, 2025
@dependabot @github

dependabot Bot commented on behalf of github Oct 22, 2025

Copy link
Copy Markdown
Contributor Author

Superseded by #392.

@dependabot dependabot Bot closed this Oct 22, 2025
@dependabot
dependabot Bot deleted the dependabot/hex/benchee-1.4.0 branch October 22, 2025 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file elixir Pull requests that update elixir code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants