chore(bench): curate benchmarks to ~30 representative indicators#63
Open
kingchenc wants to merge 1 commit into
Open
chore(bench): curate benchmarks to ~30 representative indicators#63kingchenc wants to merge 1 commit into
kingchenc wants to merge 1 commit into
Conversation
Previously every push of `cargo bench -p wickra` ran 114 indicators at three workload sizes each (1k / 10k / 50k candles), which inflated bench runtime past ten minutes for diminishing signal — most family members are linear scalings of the same hot loop, so a regression in any one of them shows up identically in the cheapest member. This commit replaces the exhaustive list with a curated selection: the cheapest baseline and the most expensive representative from each of the sixteen families, totalling ~33 indicators across scalar, candle, and multi-output APIs. If you need to profile a specific indicator that is not in the curated set, add it temporarily and run `cargo bench -- <name>` to target just that bench; it does not need to be committed. Fixed in passing: - `Cci` is `Indicator<Input = Candle>`, not f64; corrected the bench selector to `bench_candle_input`. - `Psar::new` takes (af_start, af_step, af_max) — supplied all three. - `TdSequential` uses `::classic` for the textbook (4, 9, 2, 13) parameters; the old call was missing arguments.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced May 27, 2026
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.
Summary
Replaces the exhaustive 114-indicator benchmark list with a curated selection: the cheapest baseline and the most expensive representative from each of the sixteen families, totalling ~33 entries across scalar / candle / multi-output APIs.
Why
The exhaustive bench list ran every indicator at three workload sizes (1k / 10k / 50k candles), pushing `cargo bench -p wickra` past ten minutes for diminishing signal — most family members are linear scalings of the same hot loop, so a regression shows up identically in the cheapest member.
The curated list keeps the regression-detection value while cutting bench runtime by ~3-4×. If a contributor needs to profile a specific indicator that is not in the curated set, they can add it temporarily and run `cargo bench -- ` to target just that bench — does not need to be committed.
Curation by family
Bug fixes carried in passing
Diff stats
`1 file changed, 120 insertions(+), 304 deletions(-)` — net 184 LOC removed.
Verification
Conflict status
Independent of the three open PRs (#59, #60, #61). No shared files.