Origin of idea
No regression testing for performance. core/profiler.py has profile() and adopt() timers but they're only used in a few places. No way to detect if a change degrades mod discovery, XML parsing, or sorting performance.
Suggestion / proposed solution
Add pytest-benchmark to dev deps. Write benchmarks for:
- About.xml parsing (100+ mod fixtures)
- ConstraintGraph building (100+ mod graph)
- Topological sort (worst-case 500 mod cycles)
- ModsConfig.xml read/write
- Startup impact report parsing (1MB+ log)
Run benchmarks in CI on PRs. Set baseline thresholds, flag regressions >20%. Store results as CI artifacts for trend analysis.
Alternatives considered
No response
Additional context
No response
Origin of idea
No regression testing for performance. core/profiler.py has profile() and adopt() timers but they're only used in a few places. No way to detect if a change degrades mod discovery, XML parsing, or sorting performance.
Suggestion / proposed solution
Add pytest-benchmark to dev deps. Write benchmarks for:
Run benchmarks in CI on PRs. Set baseline thresholds, flag regressions >20%. Store results as CI artifacts for trend analysis.
Alternatives considered
No response
Additional context
No response