Skip to content

Reproducible bench harness for collection performance #171

@priethor

Description

@priethor

Goal

Rows endpoint performance is hard to compare between branches today. Add a WP-CLI benchmark that seeds the same dataset and reports numbers we can diff.

Scope

  • wp cortext perf-seed creates a representative dataset. Sizes are controlled with flags for collections, rows, fields, relations, and rollups.
  • wp cortext perf-bench runs the benchmark and emits JSON with p50/p95 latency, SQL query counts, and memory.
  • Cover these scenarios: rows endpoint page 1 and page 50, sort by meta_value, edit a relation with many targets, and bulk migrate at the 1000-row cap.
  • CI job runs the benchmark on a representative dataset and fails when any scenario exceeds its budget. Budgets live in a JSON file next to the bench so they're reviewable.
  • Put the command in includes/CLI/PerfBench.php.

Acceptance criteria

  • Seeding a clean install finishes in under 2 minutes.
  • Benchmark output keeps the same shape across runs, so diffs stay readable.
  • CI fails the build when a scenario exceeds its budget.

Metadata

Metadata

Assignees

Labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions