fix(benchmark-react): improve update-user-10000 convergence and document variance#3895
fix(benchmark-react): improve update-user-10000 convergence and document variance#3895
Conversation
- Admonitions: :::type Title -> :::type[Title] (Docusaurus 3.10 recommended)
- Blog truncate: <!-- truncate --> -> {/* truncate */} (JSX comments)
- /docs/getting-started/vue -> /docs/getting-started/installation - ../api/NetworkError.md -> ../api/RestEndpoint.md#fetchResponse - #collection-move: add explicit heading ID to Collection.move heading - #migration-guide: use absolute path so it works from blog listing page - #parallel-fetches -> #parallel-data-loading to match heading - #indexes: link to Entity page instead of relative anchor - #errorPolicy -> #errorpolicy to match explicit heading ID
…ofile - Add optional Scenario.convergentProfile and merge in runner - Raise max measurements and relax CI margin for 10k subscriber case - Document heavier-tail variance in README, AGENTS, benchmarking rule
|
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Size Change: 0 B Total Size: 80.7 kB ℹ️ View Unchanged
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3895 +/- ##
=======================================
Coverage 98.11% 98.11%
=======================================
Files 153 153
Lines 2916 2916
Branches 566 566
=======================================
Hits 2861 2861
Misses 11 11
Partials 44 44 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Benchmark React
Details
| Benchmark suite | Current: 5312e06 | Previous: d23cd80 | Ratio |
|---|---|---|---|
data-client: getlist-100 |
137.94 ops/s (± 5.4%) |
134.23 ops/s (± 5.7%) |
0.97 |
data-client: getlist-500 |
40.57 ops/s (± 5.2%) |
39.22 ops/s (± 6.5%) |
0.97 |
data-client: update-entity |
312.5 ops/s (± 9.5%) |
333.33 ops/s (± 9.1%) |
1.07 |
data-client: update-user |
317.54 ops/s (± 8.6%) |
327.96 ops/s (± 8.5%) |
1.03 |
data-client: getlist-500-sorted |
42.37 ops/s (± 5.9%) |
41.76 ops/s (± 6.5%) |
0.99 |
data-client: update-entity-sorted |
317.54 ops/s (± 3.9%) |
312.5 ops/s (± 9.9%) |
0.98 |
data-client: update-entity-multi-view |
312.5 ops/s (± 6.1%) |
344.83 ops/s (± 8.1%) |
1.10 |
data-client: list-detail-switch-10 |
7.3 ops/s (± 6.4%) |
8.04 ops/s (± 10.1%) |
1.10 |
data-client: update-user-10000 |
70.42 ops/s (± 12.9%) |
75.76 ops/s (± 8.6%) |
1.08 |
data-client: invalidate-and-resolve |
35.65 ops/s (± 4.8%) |
34.13 ops/s (± 4.0%) |
0.96 |
data-client: unshift-item |
217.39 ops/s (± 2.4%) |
222.22 ops/s (± 5.1%) |
1.02 |
data-client: delete-item |
285.71 ops/s (± 5.1%) |
312.5 ops/s (± 7.3%) |
1.09 |
data-client: move-item |
185.19 ops/s (± 7.3%) |
177.01 ops/s (± 6.4%) |
0.96 |
This comment was automatically generated by workflow using github-action-benchmark.
Summary
The
update-user-10000scenario often printed[max reached]after 50 measurements without meeting the large-scenario convergence target (3% in CI, 10% locally), which produced a misleadingly wide reported margin (e.g. ±18%) even though the runner had given up early.Changes
Scenario.convergentProfile(partial override ofCONVERGENT_CONFIG) and merge it inbench/runner.tsper scenario.update-user-10000: allow up to 120 measurement iterations and use a 10% CI margin target in CI (12% locally) so the run can converge instead of always hitting the cap.examples/benchmark-react/README.md,AGENTS.md, and.cursor/rules/benchmarking.mdcto describe this as a heavier-tail / scaling scenario.Verification
Ran
CI=1 yarn bench --scenario update-user-10000 --lib data-clientlocally; it reported[converged]after ~102 measurements with ~±10.7% margin.No changeset: benchmark harness / docs only, not user-facing package APIs.