Skip to content

Optimize deterministic scheduler performance - #35

Merged
ReubenBond merged 2 commits into
mainfrom
reubenbond-optimize-scheduler-performance
Jul 29, 2026
Merged

Optimize deterministic scheduler performance#35
ReubenBond merged 2 commits into
mainfrom
reubenbond-optimize-scheduler-performance

Conversation

@ReubenBond

Copy link
Copy Markdown
Owner

Summary

  • add a permanent BenchmarkDotNet scheduler-overhead benchmark with a trace mode
  • eliminate per-step runnable-set, scheduling-context, transition-scope, and execution-context allocations
  • combine allocation-free round-robin selection with active-operation tracking from latest main
  • preserve custom/instrumented strategy snapshots and deterministic ordering

Performance

  • baseline: 22.62 us and 372 B per scheduling point
  • final: 20.13 us and 91 B per scheduling point
  • improvement: 11.0% faster and 75.5% fewer managed allocations
  • pvanalyze 2,500-run trace duration: 7.37s to 5.89s
  • pvanalyze GC trace allocations: 157.04 MB to 64.35 MB

Validation

  • 1,990 tests passed; 16 opt-in package smoke tests skipped
  • BenchmarkDotNet default job with MemoryDiagnoser
  • pvanalyze CPU and gc-verbose traces

ReubenBond and others added 2 commits July 29, 2026 13:59
Add a BenchmarkDotNet workload and eliminate per-step scheduler bookkeeping allocations while preserving instrumented strategy behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 58f51472-51b1-4cff-9ed4-e26460b5163c
Combine active-operation tracking with allocation-free deterministic selection.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 58f51472-51b1-4cff-9ed4-e26460b5163c
@ReubenBond
ReubenBond merged commit a06f7c2 into main Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant