Skip to content

ci(bench): ERD, charts/groupings and multi-tab SQL scenarios in the app benchmark (#1173) - #1255

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
ci/1173-app-bench-scenarios
Oct 9, 2026
Merged

ZhuchkaTriplesix merged 1 commit into
devfrom
ci/1173-app-bench-scenarios

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Closes #1173

Stacked on #1254 (#1132): both change the benchmark workflow and the CI step that tests its scripts. Merge #1254 first; this diff then shrinks to its own commit.

Scenarios (benchmark/app_perf_bench.dart, Demo Playground, no database server)

  • charts_5000, groupings_5000: Charts (Line, Pie, Bar) and Groupings over the 5 000 rows of the heavy query.
  • multi_tab_run: five tabs hold results, and a query runs in one of them. The bench prints how many query panes the run rebuilt (paneBuildCount).
  • erd_open_200, erd_hover, erd_drag, erd_auto_layout: a 200-table schema joined by foreign keys, created in the playground through the SQL editor. The scenarios open the Diagram, hover across it for 3 s, drag a card for 2 s, and run Auto layout.

CI

  • benchmark.yml gets an App scenarios performance job. It runs only these scenarios (ONLY=...) under xvfb and writes the report to the job summary. Informational and continue-on-error, like the grid bench. It also runs on changes to lib/features/erd/** and lib/features/results/**.
  • scripts/ci/app_bench_report.py reports build p50/p90/max, raster p50 and stutters per scenario. Build p90 is checked against a per-scenario limit: 16.7 ms for charts, groupings, the tab run and the drag; 8.3 ms for hover; 50 ms for opening and laying out the diagram. The report also checks that the tab run rebuilds at most one pane. A missing scenario counts as over.
  • scripts/ci/test_app_bench_report.py (8 cases) runs in the CI analyze job. It passes locally.

The issue mentions 50 and 200 tables; this measures 200, the harder case.

…pp benchmark (#1173)

Scenarios in benchmark/app_perf_bench.dart, on the Demo Playground:
- charts_5000, groupings_5000: Charts (line, pie, bar) and Groupings over
  the 5 000 rows of the heavy query.
- multi_tab_run: a run in one of five tabs holding results, with the
  number of query panes it rebuilt.
- erd_open_200, erd_hover, erd_drag, erd_auto_layout: a 200-table schema
  joined by foreign keys, created in the playground through the editor.

A Benchmark job runs them under xvfb, and scripts/ci/app_bench_report.py
reports build p50/p90/max, raster and stutters per scenario against its
limit, plus the pane count. Unit tests for the report run in CI.
@github-actions github-actions Bot added performance Theme parser epic label: performance tests Theme parser epic P3 Low priority / Polish & Enhancements labels Oct 9, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit e611bd4 into dev Oct 9, 2026
15 checks passed
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the ci/1173-app-bench-scenarios branch October 11, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low priority / Polish & Enhancements performance Theme parser epic label: performance tests Theme parser epic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant