Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update iai-callgrind requirement from 0.11.0 to 0.14.0 #87

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 7, 2024

Updates the requirements on iai-callgrind to permit the latest version.

Release notes

Sourced from iai-callgrind's releases.

v0.14.0

[0.14.0] - 2024-10-04

This release adds full support for multi-threaded and multi-process applications.

When upgrading from a previous release of Iai-Callgrind you might experience changes in the metrics without having changed the benchmarks themselves. The summary line in callgrind output files turned out to be buggy and unreliable if client requests are used, so Iai-Callgrind now parses the totals instead. The totals might differ slightly from the summary and cause the difference in the displayed metrics. You might also see changes in the metrics because of the changed default values for some of the valgrind arguments. Iai-Callgrind changed the following default valgrind/callgrind arguments for each benchmark run:

  • --separate-threads=no -> --separate-threads=yes
  • --trace-children=no -> --trace-children=yes
  • --fair-sched=no -> --fair-sched=try

You can now run the setup in binary benchmarks in parallel to the Command for flexible benchmarking of client/server architectures.

The MSRV has changed from 1.66.0 -> 1.67.1.

If not stated otherwise the changes below were introduced in #263.

Added

  • Support for benchmarks of multi-threading and multi-process applications by implementing the correct handling of the valgrind --trace-children and callgrind --separate-threads command line options. Per default only the total over all subprocesses and threads is calculated and shown. But, each thread and subprocess can be displayed with the new OutputFormat::show_intermediate option.
  • Support for the callgrind command line arguments --dump-every-bb, --dump-before, --dump-after which create parts. These parts are now correctly summarized in the total and the metrics of each part can be shown with OutputFormat::show_intermediate.
  • Added OutputFormat which can be used in LibraryBenchmarkConfig::output_format and BinaryBenchmarkConfig::output_format to change some of the behaviour of the default terminal output (but not json output)
  • Sometimes callgrind creates empty files, so we're cleaning them up now after each benchmark run.
  • (#256) and (#279): Support running setup in parallel and add possibility to delay the Command. Thanks to @​hargut for #256
  • (#288): Added an option OutputFormat::show_grid to show grid/guiding lines which can help reading the terminal output if running benchmarks with multiple threads/subprocesses/tools.
  • The method BinaryBenchmarkConfig::with_callgrind_args was added to match the constructors of the LibraryBenchmarkConfig.
  • The methods BinaryBenchmarkConfig::valgrind_args and LibraryBenchmarkConfig::valgrind_args are introduced to be able to pass valgrind core arguments to all tools.

Changed

  • All tools are now per default run with --trace-children=yes and --fair-sched=try. In addition, callgrind is run with --separate-threads=yes. These default arguments can be changed in Tool::args or LibraryBenchmarkConfig::callgrind_args, BinaryBenchmarkConfig::callgrind_args.
  • The file naming scheme was adjusted to include the pids in case of multi-process benchmarks, the parts in case of callgrind command-line arguments which create multiple parts and threads in case of multiple threads. This change is backwards compatible to the file naming scheme of previous Iai-Callgrind releases for all tools but exp-bbv.
  • Error metrics from tools like drd, helgrind and memcheck are now listed and compared like the other metrics in a vertical format. For example
    ======= DRD ===============================================================
    Errors:                           0|0               (No change)
    Contexts:                         0|0               (No change)
    Suppressed Errors:                0|0               (No change)
    Suppressed Contexts:              0|0               (No change)
    
  • (#263) and (#288): Increase the field width by 3 bytes and the space for metrics by 5 on each side of the comparison so that the value of u64::MAX fits into the terminal output without messing up the side-by-side layout.
  • The LibraryBenchmarkConfig::truncate_description, BinaryBenchmarkConfig::truncate_description methods have been moved to OutputFormat::truncate_description
  • In the presence of multiple processes the DHAT metrics are now summarized and shown in a total in the same way as the metrics of callgrind and the other tools.
  • Bump the summary json schema to v3 in iai-callgrind-runner/schemas/summary.v3.schema.json
  • Various prs: Update locked direct dependencies:
    • anyhow -> 1.0.89
    • cc -> 1.1.25
    • indexmap -> 2.6.0
    • itertools -> 0.13.0

... (truncated)

Changelog

Sourced from iai-callgrind's changelog.

[0.14.0] - 2024-10-04

This release adds full support for multi-threaded and multi-process applications.

When upgrading from a previous release of Iai-Callgrind you might experience changes in the metrics without having changed the benchmarks themselves. The summary line in callgrind output files turned out to be buggy and unreliable if client requests are used, so Iai-Callgrind now parses the totals instead. The totals might differ slightly from the summary and cause the difference in the displayed metrics. You might also see changes in the metrics because of the changed default values for some of the valgrind arguments. Iai-Callgrind changed the following default valgrind/callgrind arguments for each benchmark run:

  • --separate-threads=no -> --separate-threads=yes
  • --trace-children=no -> --trace-children=yes
  • --fair-sched=no -> --fair-sched=try

You can now run the setup in binary benchmarks in parallel to the Command for flexible benchmarking of client/server architectures.

The MSRV has changed from 1.66.0 -> 1.67.1.

If not stated otherwise the changes below were introduced in #263.

Added

  • Support for benchmarks of multi-threading and multi-process applications by implementing the correct handling of the valgrind --trace-children and callgrind --separate-threads command line options. Per default only the total over all subprocesses and threads is calculated and shown. But, each thread and subprocess can be displayed with the new OutputFormat::show_intermediate option.
  • Support for the callgrind command line arguments --dump-every-bb, --dump-before, --dump-after which create parts. These parts are now correctly summarized in the total and the metrics of each part can be shown with OutputFormat::show_intermediate.
  • Added OutputFormat which can be used in LibraryBenchmarkConfig::output_format and BinaryBenchmarkConfig::output_format to change some of the behaviour of the default terminal output (but not json output)
  • Sometimes callgrind creates empty files, so we're cleaning them up now after each benchmark run.
  • (#256) and (#279): Support running setup in parallel and add possibility to delay the Command. Thanks to @​hargut for #256
  • (#288): Added an

... (truncated)

Commits
  • 83522cd Merge branch 'release'
  • 76cd7b2 Update CHANGELOG
  • da7550c cicd: Fix /usr/bin/ld: final link failed: No space left on device
  • ac024e1 Bump version v0.13.4 -> v0.14.0
  • 29826bc Bump iai-callgrind-macros version v0.4.1 -> v0.5.0
  • 51f2a71 Update CHANGELOG
  • d0bf688 chore: Update locked dependencies
  • eca0b9e chore(deps): Use indexmap2 in schemars. Remove duplicate dependency on indexmap
  • d6f534d chore(deps): Remove default features from rstest to pass minimal-versions
  • cf8a039 Update CONTRIBUTING
  • Additional commits viewable in compare view

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)

Updates the requirements on [iai-callgrind](https://github.com/iai-callgrind/iai-callgrind) to permit the latest version.
- [Release notes](https://github.com/iai-callgrind/iai-callgrind/releases)
- [Changelog](https://github.com/iai-callgrind/iai-callgrind/blob/main/CHANGELOG.md)
- [Commits](iai-callgrind/iai-callgrind@v0.11.0...v0.14.0)

---
updated-dependencies:
- dependency-name: iai-callgrind
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Oct 7, 2024
Copy link

github-actions bot commented Oct 7, 2024

🐰 Bencher Report

Branch87/merge
Testbedlocalhost

⚠️ WARNING: The following Measures do not have a Threshold. Without a Threshold, no Alerts will ever be generated!

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkEstimated Cyclesestimated cyclesInstructionsinstructionsL1 HitshitsL2 HitshitsRAM HitshitsTotal read+writereads/writes
ci_bench::ci::reader read:setup_video("big_buck_bunny_1080p_24fps_h264.h264"...📈 view plot
⚠️ NO THRESHOLD
16,716,500.00📈 view plot
⚠️ NO THRESHOLD
8,236,453.00📈 view plot
⚠️ NO THRESHOLD
10,846,620.00📈 view plot
⚠️ NO THRESHOLD
15,049.00📈 view plot
⚠️ NO THRESHOLD
165,561.00📈 view plot
⚠️ NO THRESHOLD
11,027,230.00
🐰 View full continuous benchmarking report in Bencher

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 rust Pull requests that update Rust code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants