Skip to content

Conversation

@mattsu2020
Copy link
Contributor

Add dev-dependencies for divan and uucore benchmarking features, and configure a new bench target for timeout command performance testing. This enables automated benchmarking to track and optimize execution times.

related
#9100 (comment)

Add dev-dependencies for divan and uucore benchmarking features, and configure a new bench target for timeout command performance testing. This enables automated benchmarking to track and optimize execution times.
@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/tail/inotify-dir-recreate is now passing!

Copy link
Contributor

@sylvestre sylvestre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some jobs are failing

@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/printf/printf-surprise is now passing!
Note: The gnu test tests/dd/no-allocate was skipped on 'main' but is now failing.
Note: The gnu test tests/misc/write-errors was skipped on 'main' but is now failing.

@mattsu2020
Copy link
Contributor Author

some jobs are failing

This is a temporary error.

@sylvestre
Copy link
Contributor

it seems that divan isn't identifying these new benchmarks

Remove the unnecessary `mod unix` block and use `#[cfg(unix)]` attributes
on imports, functions, and benchmarks. Adjust `main()` to conditionally
call `divan::main()` for Unix platforms. This refactoring improves code
readability and reduces module nesting without changing functionality.
@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/printf/printf-surprise is now passing!
Note: The gnu test tests/dd/no-allocate was skipped on 'main' but is now failing.
Note: The gnu test tests/misc/write-errors was skipped on 'main' but is now failing.

@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/tail/inotify-dir-recreate is now passing!

Include benchmarking for the uu_timeout utility to ensure performance tracking alongside other tools in the suite.
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/sort/sort-stale-thread-mem. tests/sort/sort-stale-thread-mem is passing on 'main'. Maybe you have to rebase?

@mattsu2020 mattsu2020 requested a review from sylvestre December 26, 2025 07:41
@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)

… logic

Replace complex child mode spawning with direct command arguments for cleaner and more maintainable benchmarks, reducing overhead and improving readability. Use "true" for quick-exit and "sleep" for enforced timeout tests.
@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/cp/preserve-gid is no longer failing!
Note: The gnu test tests/basenc/bounded-memory is now being skipped but was previously passing.

@mattsu2020 mattsu2020 requested a review from sylvestre January 5, 2026 08:53
@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tty/tty-eof (passes in this run but fails in the 'main' branch)
Congrats! The gnu test tests/tail/follow-name is no longer failing!

Remove the shared bench_timeout function and directly inline its logic into timeout_quick_exit and timeout_enforced benchmarks. This simplifies the code by eliminating unnecessary abstraction for two closely related functions.
@github-actions
Copy link

GNU testsuite comparison:

Congrats! The gnu test tests/sort/sort-float is no longer failing!

@codspeed-hq
Copy link

codspeed-hq bot commented Jan 15, 2026

Merging this PR will improve performance by 3.75%

⚡ 1 improved benchmark
✅ 185 untouched benchmarks
🆕 1 new benchmark
⏩ 134 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Memory dd_copy_default 130.8 KB 126 KB +3.75%
🆕 Simulation timeout_enforced N/A 186.1 µs N/A

Comparing mattsu2020:timeout-bench-only-clean (03a63f7) with main (d0c7e12)

Open in CodSpeed

Footnotes

  1. 134 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tty/tty-eof (fails in this run but passes in the 'main' branch)

mattsu2020 and others added 2 commits January 16, 2026 20:20
This update ensures compatibility with the latest features and bug fixes in the divan benchmarking library.
@mattsu2020 mattsu2020 marked this pull request as draft January 16, 2026 12:39
mattsu2020 and others added 2 commits January 16, 2026 21:40
Disable the benchmark function for the fast path where the command exits immediately, as it may be redundant or causing issues in the test suite.
@sylvestre
Copy link
Contributor

still draft, is that expected ?

Enable Rust backtraces in the benchmarks workflow to aid in troubleshooting failures during performance testing.
- Changed RUST_BACKTRACE from "1" to "full" to provide more detailed backtraces for better debugging in case of errors during benchmark runs.
…go-codspeed

Replace separate dtolnay/rust-toolchain, rust-cache, and sccache actions with moonrepo/setup-rust@v1 for unified setup. This aligns toolchain and binary versions with CodSpeed to prevent memtrack/cargo-codspeed incompatibilities, ensuring reliable benchmark builds.
Add "memtrack" and "moonrepo" to the spell-checker ignore list to prevent false positives for new benchmarking tools introduced in the workflow.
Uncommented the timeout_quick_exit benchmark function to include testing of the fast path where the command exits immediately, ensuring performance metrics are captured for this scenario.
@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tty/tty-eof (passes in this run but fails in the 'main' branch)

The moonrepo/setup-rust action requires 'channel' instead of 'rust-version' for specifying the Rust version. Updated the parameter to ensure the workflow executes correctly.
@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tty/tty-eof (passes in this run but fails in the 'main' branch)

Fixed a full-width space character in the Rust channel version to a standard space, preventing potential parsing issues in the GitHub Actions workflow.
@mattsu2020
Copy link
Contributor Author

still draft, is that expected ?

The memory investigation for timeout always fails.
This seems to be an issue with CodSpeed memtrack v1.1.0, so this PR cannot be merged for the time being.

@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tty/tty-eof (passes in this run but fails in the 'main' branch)

@codspeed-hq
Copy link

codspeed-hq bot commented Jan 18, 2026

Unable to generate the performance report

There was an internal error while processing the run's data. We're working on fixing the issue. Feel free to contact us on Discord or at support@codspeed.io if the issue persists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants