-
Notifications
You must be signed in to change notification settings - Fork 0
feat(go-runner): optimize walltime result parsing #33
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
feat(go-runner): optimize walltime result parsing #33
Conversation
d785401 to
1679125
Compare
0f1f993 to
1bef8cb
Compare
CodSpeed Performance ReportMerging #33 will degrade performances by 25%Comparing Summary
Benchmarks breakdown
Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR optimizes walltime result parsing by introducing parallel processing via the rayon crate and refactoring data structures to use borrowed slices instead of owned vectors.
Key changes:
- Adds
rayondependency for parallel iteration across benchmark data processing - Changes
WalltimeBenchmark::from_runtime_datasignature to accept slice references (&[u64]) instead of owned vectors - Refactors
RawResult::parse_folderto combine parsing and conversion into a single pipeline with parallel processing
Reviewed Changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| go-runner/Cargo.toml | Adds rayon dependency for parallel processing |
| Cargo.lock | Updates lock file with rayon dependency tree |
| go-runner/src/results/walltime_results.rs | Introduces parallel iterators for sum/filter operations and changes function signature to use slices |
| go-runner/src/results/raw_result.rs | Refactors parse_folder to use parallel processing and combines parsing with benchmark conversion |
| go-runner/src/lib.rs | Updates imports and simplifies collect_walltime_results to use refactored API |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
cb4b981 to
4b2789b
Compare
df0ed28 to
bbcaab5
Compare
GuillaumeLagrange
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
olgtm
d635326 to
cc77d35
Compare
cc77d35 to
71ef596
Compare
Big performance improvements the more benchmarks and entries we have:
before:
after:
These are the results before adding the file_count parameter (i added it to observe how the performance scales with more files): https://codspeed.io/CodSpeedHQ/codspeed-go/runs/compare/6914aa55ba7672787291aa34..6914ad113449e87ac0ad578e
BASEHEADbench_collect_results[10000000]bench_collect_results[1000000]bench_collect_results[100000]bench_collect_results[5000000]bench_collect_results[500000]bench_go_runner