Skip to content

fix: stabilize core compute budgets - #22

Open
fabric0de wants to merge 1 commit into
mainfrom
fix/stabilize-core-compute-budget
Open

fix: stabilize core compute budgets#22
fabric0de wants to merge 1 commit into
mainfrom
fix/stabilize-core-compute-budget

Conversation

@fabric0de

Copy link
Copy Markdown
Contributor

Summary

  • Stabilize the required 100,000-row to 1,000,000-row core compute performance gate.
  • Apply workload-specific scaling ceilings based on repeated GitHub-hosted Linux and local macOS measurements.
  • Keep the stricter existing limits for row-model construction and filtering.
  • Add explicit boundary tests so meaningful sorting regressions continue to fail.
  • Document the updated performance policy and rationale.

Performance Budget Changes

  • Keep 2.0x per-row scaling ceilings for:
    • Initial row-model construction
    • Global filtering
    • Column filtering
  • Set numeric sorting ceilings to 2.5x.
  • Set repeated sort-direction flip ceilings to 3.0x.
  • Continue rejecting quadratic scaling regressions.

Rationale

The previous uniform 2.0x ceiling repeatedly failed for sorting workloads without any Core implementation changes:

  • GitHub Actions reproduced normalized sorting ratios between 2.245x and 2.300x.
  • Local macOS measurement reproduced a 2.112x median and 2.458x p95 for direction flips.
  • Unaffected row-model and filtering workloads remained within their existing 2.0x limits.

The revised limits account for the stable allocation and garbage-collection cost observed at one million rows without relaxing unrelated performance contracts.

Verification

  • Sorting budget boundaries are covered by tests.
  • Ratios immediately below each limit pass.
  • Ratios immediately above each limit fail.
  • Quadratic scaling regressions remain rejected.
  • pnpm benchmark:core-filter:massive:run passes.
  • pnpm test passes.
  • pnpm check passes.
  • pnpm docs:build passes.
  • Performance policy documentation is updated.
  • CHANGELOG.md is updated.
  • No generated benchmark results, credentials, or private data are included.

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