Skip to content

Performance benchmark suite #32

Description

@PyXiion

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions