ci: Add CodSpeed benchmarks for more modules#1941
Open
AdilZouitine wants to merge 3 commits into
Open
Conversation
- Introduced new benchmark files for `adwin_bench`, `rolling_metrics_bench`, `sorted_window_bench`, `covariance_bench`, and `expected_mutual_info_bench` in the Rust benchmarks directory. - Updated `Cargo.toml` to include new benchmark configurations. - Added Python benchmark tests for various algorithms in the CodSpeed benchmarking framework, including tests for active learning, anomaly detection, and ensemble methods. - Configured per-file ignores for specific benchmarks in `pyproject.toml` to streamline linting. - Enhanced the `workloads.py` file to support new benchmark scenarios with deterministic data streams.
Merging this PR will create unknown performance changes
Performance Changes
Comparing Footnotes
|
- Added new benchmark tests for various algorithms in the CodSpeed framework, including active learning, anomaly detection, and ensemble methods. - Introduced Rust benchmarks for adaptive windowing, covariance, expected mutual information, and rolling metrics. - Updated `Cargo.toml` to include new benchmark paths and configurations. - Revised `CONTRIBUTING.md` to reflect changes in benchmark directory structure. - Adjusted `pyproject.toml` to ignore specific benchmark files for linting. - Enhanced `benchmarks/README.md` with instructions for running benchmarks locally and integrating with CodSpeed. - Added new Python workload functions to support deterministic data streams for benchmarks.
- Added a new marker for heavy benchmarks in `pyproject.toml` to categorize tests for the heavy CI shard. - Updated GitHub Actions workflow to implement a matrix strategy for Python benchmarks, splitting them into "heavy" and "rest" shards based on execution time. - Revised benchmark tests to utilize the new `heavy` marker, ensuring that the most resource-intensive benchmarks are appropriately categorized. - Improved documentation in `benchmarks/README.md` to explain the new sharding strategy and its impact on CI performance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & Why
Stacked on #1940.
Add CodSpeed benchmarks for more River modules so the new CI signal covers more of the library.
How
Testing
uv run prek run --all-filesNotes for reviewers
Please check benchmark size and determinism first. The goal is broad coverage without making CI too slow.
AI Usage
I implemented a few tests myself to give the style, and then the agent generated the other.
I reviewed the generated tests too.