Conversation
WalkthroughAdds a CI benchmarking workflow and local benchmark tooling: k6/Vegeta scripts, Ruby benchmark helpers and BMF exporters, HTML report splitter, production start/build scripts for dummy apps, Puma/shakapacker tweaks, docs, .gitignore/knip/package updates, and supporting CI scripts. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor GH as GitHub Actions
participant WF as Benchmark Workflow
participant Tools as Tool Installer (k6, Vegeta, Bencher)
participant Builder as Build & Start (Core / Pro)
participant Runner as Load Test (k6 / Vegeta)
participant App as App Servers (Rails / Node Renderer)
participant Collector as BmfCollector / Bencher
participant GHPR as PR / Job Summary
GH->>WF: trigger (push / PR / manual)
WF->>Tools: install and configure benchmarking tools
WF->>Builder: build assets, publish packages, start Core & Pro servers
Builder-->>WF: ready signal
WF->>Runner: run Core benchmarks (k6) per-route
Runner->>App: HTTP requests (per-route)
App-->>Runner: responses (status, latency)
Runner->>Collector: aggregate metrics (RPS, p50/p90/p99, status)
WF->>Runner: run Pro benchmarks (Vegeta) per-bundle
Runner->>App: per-bundle render requests (h2c)
App-->>Runner: responses
Runner->>Collector: append metrics (BMF)
WF->>Collector: upload BMF to Bencher, fetch HTML report
WF->>WF: split HTML if needed
WF->>GHPR: post job summary and report chunks
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
🧹 Recent nitpick comments
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🧠 Learnings (2)📚 Learning: 2026-01-15T02:58:44.584ZApplied to files:
📚 Learning: 2025-10-23T17:22:01.074ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (13)
🔇 Additional comments (2)
✏️ Tip: You can disable this entire section by setting Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
980a424 to
4a01be4
Compare
ec26e73 to
a616cd1
Compare
Code Review - PR #1868: Add Performance TestsThanks for this contribution! This is a solid implementation of performance testing infrastructure. ✅ Strengths
🐛 Critical Issues
|
040c0a5 to
ad56e14
Compare
PR Review: Add Performance Tests (1868)SummaryThis PR adds comprehensive performance testing infrastructure using three industry-standard benchmarking tools (Fortio, Vegeta, and k6). Well-structured implementation addressing issue 1777. Critical Issues1. Missing Trailing NewlinesCRITICAL per CLAUDE.md: Files MUST end with newline character or CI will fail:
2. RuboCop RequiredCRITICAL per CLAUDE.md: Must run Potential BugsK6 JSON Parsing (bench.sh:187-192)The jq expression uses Server Startup Race (benchmark.yml:254)Uses npm vs yarn (benchmark.yml:200)Uses Code Quality Strengths
Suggestions
Test CoverageGood: Infrastructure in place, runs on PR/push, results preserved as artifacts VerdictSolid PR with high code quality. Performance testing infrastructure will be valuable. Required Before Merge:
Recommended:
Great work overall! |
e350a34 to
7b9d621
Compare
PR Review: Add Performance TestsThank you for this comprehensive performance testing implementation! This is a well-structured addition to the repository. Here's my detailed feedback: ✅ Strengths
🐛 Potential Issues1. Script Portability - bc Dependency (bench.sh:21,33)The script uses bc for floating-point comparisons but bc is not installed in the workflow. Fix: Add bc to the apt package installation step in the workflow, or use bash-native arithmetic for integer comparisons. 2. Race Condition in Server Startup (benchmark.yml:248)The server process is backgrounded but there is no guarantee it has started before the polling loop begins. If the server fails to start immediately, the loop might miss error messages. Suggestion: Add a brief sleep 2 before the polling loop, or capture the PID and check if the process is still running during the timeout loop. 3. k6 Status Reporting Edge Case (bench.sh:199-204)If .root_group.checks is empty, add returns null, causing K6_REQS_OTHER calculation to fail. Fix: Add null handling by changing the jq expression to use | add // 0 4. Missing Newline at End of FilesPer CLAUDE.md requirements: ALWAYS ensure files end with a newline character Files needing newlines:
Fix: Run rake autofix or add trailing newlines manually. 5. Benchmark Workflow Runs on Every PR (benchmark.yml:57-58)Running 30-second benchmarks with 3 tools on every PR will consume significant CI minutes and slow down PR feedback. Suggestion:
🔍 Code Quality & Best PracticesSecurity
Performance
Maintainability
📊 Test CoverageMissing:
Suggestions:
🔧 Configuration IssuesPuma Configuration (spec/dummy/config/puma.rb:38)Workflow sets default to 4 workers (WEB_CONCURRENCY: 4), but Puma defaults to 2 if not set. The workflow default should match. Consistency check needed: Verify that WEB_CONCURRENCY=4 is intentional for CI runners with 2 CPU cores. 📝 Documentation & ChangelogPer CLAUDE.md: Update CHANGELOG.md for user-visible changes only (features, bug fixes, breaking changes, deprecations, performance improvements) This PR qualifies as it adds a performance testing feature. Needs:
Missing:
🎯 RecommendationsBefore Merge (Critical):
Nice to Have: 🎓 Overall AssessmentThis is a solid, production-ready implementation of performance testing. The code quality is high, with excellent error handling and configurability. The main concerns are:
Recommendation: Request changes for the critical items (newlines, changelog, PR trigger), then approve. Score: 8/10 - Great implementation, minor issues to address. |
7b9d621 to
f2b9ef8
Compare
Pull Request Review: Add Performance TestsThank you for this comprehensive performance testing implementation! This is a valuable addition to the project. Below is my detailed review: ✅ Strengths
🔍 Issues and ConcernsCritical Issues
High Priority Issues
Medium Priority Issues
🔒 Security Considerations
🧪 Test CoverageMissing:
Recommendations:
📝 Suggested ChangesMust Fix (Blocks Merge)
Should Fix (High Priority)
Nice to Have
✅ ChangelogPer CLAUDE.md, this should be added to CHANGELOG.md as it's a new feature. 🎯 Overall AssessmentThis is a solid foundation for performance testing with good multi-tool coverage and configurability. The main blockers are CLAUDE.md compliance issues (trailing newlines, RuboCop). Once those are fixed and the workflow triggers are adjusted to avoid running on every PR, this will be ready to merge. Estimated effort to address critical issues: ~30 minutes Great work overall! 🚀 |
c58f480 to
43f8858
Compare
Code Review: Add Performance TestsThank you for this comprehensive performance testing addition! This is a well-structured PR that addresses issue #1777. ✅ Strengths1. Excellent Tool Coverage
2. Robust Error Handling
3. Production-Ready Configuration
🔒 Security Concerns - CRITICALSSH Access Feature (lines 96-119 in .github/workflows/benchmark.yml)This poses significant security risks: Issues:
Recommendations:
🐛 Potential Bugs1. Division by Zero Risk (spec/performance/bench.sh:195-197)If K6_REQS_KNOWN_STATUS is null/empty, this could fail. Add validation. 2. Race Condition in Server Startup (spec/dummy/bin/prod)The rails s command starts but there is no guarantee assets are fully loaded. Consider adding a readiness check that validates asset serving. 3. Missing Error ContextWhen benchmarks fail, the error message does not indicate which tool failed. Consider wrapping each tool execution with proper error context. 4. Hardcoded Paths (spec/performance/bench.sh:87)If run from wrong directory, this could create directories in unexpected locations. Consider using SCRIPT_DIR to make paths relative to the script location. ⚡ Performance Considerations
🧪 Test Coverage - Missing
📝 Documentation - REQUIREDMissing per CLAUDE.md requirements:
🎨 Code Quality SuggestionsGood Practices:
Suggestions:
📋 Action Items Summary🔴 High Priority (Before Merge):
🟡 Medium Priority (Before Merge):
🟢 Low Priority (Future Enhancement):
✨ Overall AssessmentThis is a solid foundation for performance testing! The multi-tool approach and comprehensive workflow setup show good engineering practices. Main concerns:
Recommendation: Request changes for security and documentation issues, then approve after those are addressed. Great work on this comprehensive testing infrastructure! |
be4af9e to
564b8b6
Compare
📊 Bencher Integration Quality1. Threshold Configuration ✅ EXCELLENTThe 30% regression threshold is reasonable for library benchmarking in shared CI infrastructure. The configuration correctly uses:
2. HTML Report Splitting ✅ CLEVER SOLUTIONsplit_html_report.rb:
Minor improvement: Could add chunk numbering to comments for clarity. 🎯 Recommendations SummaryMust Fix (Blocking)
Should Fix (Pre-merge)
Nice to Have (Post-merge)
🏆 Final VerdictStatus: ✅ APPROVE WITH MINOR CHANGES This is excellent work that significantly improves the project's testing infrastructure. The code quality is high, the design is thoughtful, and the documentation is comprehensive. The only blocking issue is the CHANGELOG entry decision, which is a quick fix. Estimated effort to address blocking issues: 5 minutes Confidence level: High - this is production-ready infrastructure code with proper error handling and validation. Great job on this implementation, @alexeyr-ci2! The benchmark infrastructure will be valuable for detecting performance regressions and improving React on Rails quality. 🎉 |
|
| Branch | alexeyr/performance-tests |
| Testbed | github-actions |
Click to view all benchmark results
| Benchmark | failed_pct | Benchmark Result % (Result Δ%) | Upper Boundary % (Limit %) | p50_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | p90_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | p99_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | rps | Benchmark Result req/s (Result Δ%) | Lower Boundary req/s (Limit %) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 2,398.75(0.00%)Baseline: 2,398.75 | 3,118.38 (76.92%) | 📈 view plot 🚷 view threshold | 3,668.98(0.00%)Baseline: 3,668.98 | 4,769.67 (76.92%) | 📈 view plot 🚷 view threshold | 34,193.34(0.00%)Baseline: 34,193.34 | 44,451.34 (76.92%) | 📈 view plot 🚷 view threshold | 2.54(0.00%)Baseline: 2.54 | 1.78 (70.00%) |
| /: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 12.89(0.00%)Baseline: 12.89 | 16.76 (76.92%) | 📈 view plot 🚷 view threshold | 40.17(0.00%)Baseline: 40.17 | 52.22 (76.92%) | 📈 view plot 🚷 view threshold | 852.61(0.00%)Baseline: 852.61 | 1,108.39 (76.92%) | 📈 view plot 🚷 view threshold | 164.84(0.00%)Baseline: 164.84 | 115.39 (70.00%) |
| /apollo_graphql: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 44.33(0.00%)Baseline: 44.33 | 57.63 (76.92%) | 📈 view plot 🚷 view threshold | 117.60(0.00%)Baseline: 117.60 | 152.88 (76.92%) | 📈 view plot 🚷 view threshold | 585.28(0.00%)Baseline: 585.28 | 760.86 (76.92%) | 📈 view plot 🚷 view threshold | 124.55(0.00%)Baseline: 124.55 | 87.19 (70.00%) |
| /async_components_demo: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 30.93(0.00%)Baseline: 30.93 | 40.21 (76.92%) | 📈 view plot 🚷 view threshold | 45.02(0.00%)Baseline: 45.02 | 58.53 (76.92%) | 📈 view plot 🚷 view threshold | 407.52(0.00%)Baseline: 407.52 | 529.78 (76.92%) | 📈 view plot 🚷 view threshold | 254.10(0.00%)Baseline: 254.10 | 177.87 (70.00%) |
| /async_on_server_sync_on_client: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 16.47(0.00%)Baseline: 16.47 | 21.41 (76.92%) | 📈 view plot 🚷 view threshold | 28.06(0.00%)Baseline: 28.06 | 36.48 (76.92%) | 📈 view plot 🚷 view threshold | 260.16(0.00%)Baseline: 260.16 | 338.21 (76.92%) | 📈 view plot 🚷 view threshold | 392.72(0.00%)Baseline: 392.72 | 274.90 (70.00%) |
| /async_on_server_sync_on_client_client_render: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 16.63(0.00%)Baseline: 16.63 | 21.62 (76.92%) | 📈 view plot 🚷 view threshold | 26.08(0.00%)Baseline: 26.08 | 33.90 (76.92%) | 📈 view plot 🚷 view threshold | 171.08(0.00%)Baseline: 171.08 | 222.40 (76.92%) | 📈 view plot 🚷 view threshold | 460.97(0.00%)Baseline: 460.97 | 322.68 (70.00%) |
| /async_render_function_returns_component: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.90(0.00%)Baseline: 17.90 | 23.27 (76.92%) | 📈 view plot 🚷 view threshold | 28.19(0.00%)Baseline: 28.19 | 36.65 (76.92%) | 📈 view plot 🚷 view threshold | 201.61(0.00%)Baseline: 201.61 | 262.09 (76.92%) | 📈 view plot 🚷 view threshold | 441.07(0.00%)Baseline: 441.07 | 308.75 (70.00%) |
| /async_render_function_returns_string: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 20.14(0.00%)Baseline: 20.14 | 26.18 (76.92%) | 📈 view plot 🚷 view threshold | 28.16(0.00%)Baseline: 28.16 | 36.61 (76.92%) | 📈 view plot 🚷 view threshold | 110.03(0.00%)Baseline: 110.03 | 143.04 (76.92%) | 📈 view plot 🚷 view threshold | 437.08(0.00%)Baseline: 437.08 | 305.96 (70.00%) |
| /broken_app: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 386.32(0.00%)Baseline: 386.32 | 502.22 (76.92%) | 📈 view plot 🚷 view threshold | 437.39(0.00%)Baseline: 437.39 | 568.61 (76.92%) | 📈 view plot 🚷 view threshold | 3,160.19(0.00%)Baseline: 3,160.19 | 4,108.25 (76.92%) | 📈 view plot 🚷 view threshold | 23.40(0.00%)Baseline: 23.40 | 16.38 (70.00%) |
| /broken_app: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.80(0.00%)Baseline: 18.80 | 24.44 (76.92%) | 📈 view plot 🚷 view threshold | 30.29(0.00%)Baseline: 30.29 | 39.38 (76.92%) | 📈 view plot 🚷 view threshold | 160.08(0.00%)Baseline: 160.08 | 208.10 (76.92%) | 📈 view plot 🚷 view threshold | 414.83(0.00%)Baseline: 414.83 | 290.38 (70.00%) |
| /cached_react_helmet: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.82(0.00%)Baseline: 17.82 | 23.17 (76.92%) | 📈 view plot 🚷 view threshold | 59.64(0.00%)Baseline: 59.64 | 77.53 (76.92%) | 📈 view plot 🚷 view threshold | 258.08(0.00%)Baseline: 258.08 | 335.50 (76.92%) | 📈 view plot 🚷 view threshold | 302.71(0.00%)Baseline: 302.71 | 211.90 (70.00%) |
| /cached_redux_component: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.15(0.00%)Baseline: 17.15 | 22.30 (76.92%) | 📈 view plot 🚷 view threshold | 32.80(0.00%)Baseline: 32.80 | 42.64 (76.92%) | 📈 view plot 🚷 view threshold | 158.17(0.00%)Baseline: 158.17 | 205.62 (76.92%) | 📈 view plot 🚷 view threshold | 420.43(0.00%)Baseline: 420.43 | 294.30 (70.00%) |
| /client_side_hello_world: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 11.31(0.00%)Baseline: 11.31 | 14.70 (76.92%) | 📈 view plot 🚷 view threshold | 14.78(0.00%)Baseline: 14.78 | 19.21 (76.92%) | 📈 view plot 🚷 view threshold | 131.56(0.00%)Baseline: 131.56 | 171.03 (76.92%) | 📈 view plot 🚷 view threshold | 517.30(0.00%)Baseline: 517.30 | 362.11 (70.00%) |
| /client_side_hello_world: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 16.61(0.00%)Baseline: 16.61 | 21.59 (76.92%) | 📈 view plot 🚷 view threshold | 20.12(0.00%)Baseline: 20.12 | 26.16 (76.92%) | 📈 view plot 🚷 view threshold | 333.70(0.00%)Baseline: 333.70 | 433.81 (76.92%) | 📈 view plot 🚷 view threshold | 348.68(0.00%)Baseline: 348.68 | 244.08 (70.00%) |
| /client_side_hello_world_shared_store: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 10.58(0.00%)Baseline: 10.58 | 13.75 (76.92%) | 📈 view plot 🚷 view threshold | 23.15(0.00%)Baseline: 23.15 | 30.09 (76.92%) | 📈 view plot 🚷 view threshold | 130.93(0.00%)Baseline: 130.93 | 170.21 (76.92%) | 📈 view plot 🚷 view threshold | 614.87(0.00%)Baseline: 614.87 | 430.41 (70.00%) |
| /client_side_hello_world_shared_store: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.48(0.00%)Baseline: 17.48 | 22.72 (76.92%) | 📈 view plot 🚷 view threshold | 27.47(0.00%)Baseline: 27.47 | 35.71 (76.92%) | 📈 view plot 🚷 view threshold | 190.32(0.00%)Baseline: 190.32 | 247.42 (76.92%) | 📈 view plot 🚷 view threshold | 450.48(0.00%)Baseline: 450.48 | 315.34 (70.00%) |
| /client_side_hello_world_shared_store_controller: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 10.00(0.00%)Baseline: 10.00 | 13.00 (76.92%) | 📈 view plot 🚷 view threshold | 19.85(0.00%)Baseline: 19.85 | 25.80 (76.92%) | 📈 view plot 🚷 view threshold | 117.55(0.00%)Baseline: 117.55 | 152.81 (76.92%) | 📈 view plot 🚷 view threshold | 673.46(0.00%)Baseline: 673.46 | 471.42 (70.00%) |
| /client_side_hello_world_shared_store_controller: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 19.90(0.00%)Baseline: 19.90 | 25.87 (76.92%) | 📈 view plot 🚷 view threshold | 28.04(0.00%)Baseline: 28.04 | 36.45 (76.92%) | 📈 view plot 🚷 view threshold | 115.09(0.00%)Baseline: 115.09 | 149.62 (76.92%) | 📈 view plot 🚷 view threshold | 442.25(0.00%)Baseline: 442.25 | 309.58 (70.00%) |
| /client_side_hello_world_shared_store_defer: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 9.67(0.00%)Baseline: 9.67 | 12.57 (76.92%) | 📈 view plot 🚷 view threshold | 18.26(0.00%)Baseline: 18.26 | 23.74 (76.92%) | 📈 view plot 🚷 view threshold | 150.05(0.00%)Baseline: 150.05 | 195.06 (76.92%) | 📈 view plot 🚷 view threshold | 686.19(0.00%)Baseline: 686.19 | 480.33 (70.00%) |
| /client_side_hello_world_shared_store_defer: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 20.00(0.00%)Baseline: 20.00 | 26.00 (76.92%) | 📈 view plot 🚷 view threshold | 27.67(0.00%)Baseline: 27.67 | 35.97 (76.92%) | 📈 view plot 🚷 view threshold | 113.52(0.00%)Baseline: 113.52 | 147.58 (76.92%) | 📈 view plot 🚷 view threshold | 444.32(0.00%)Baseline: 444.32 | 311.02 (70.00%) |
| /client_side_log_throw: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 8.13(0.00%)Baseline: 8.13 | 10.57 (76.92%) | 📈 view plot 🚷 view threshold | 13.80(0.00%)Baseline: 13.80 | 17.94 (76.92%) | 📈 view plot 🚷 view threshold | 140.41(0.00%)Baseline: 140.41 | 182.53 (76.92%) | 📈 view plot 🚷 view threshold | 756.34(0.00%)Baseline: 756.34 | 529.44 (70.00%) |
| /client_side_log_throw: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 16.66(0.00%)Baseline: 16.66 | 21.66 (76.92%) | 📈 view plot 🚷 view threshold | 25.45(0.00%)Baseline: 25.45 | 33.09 (76.92%) | 📈 view plot 🚷 view threshold | 185.15(0.00%)Baseline: 185.15 | 240.69 (76.92%) | 📈 view plot 🚷 view threshold | 460.76(0.00%)Baseline: 460.76 | 322.53 (70.00%) |
| /client_side_manual_render: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 8.21(0.00%)Baseline: 8.21 | 10.67 (76.92%) | 📈 view plot 🚷 view threshold | 13.60(0.00%)Baseline: 13.60 | 17.68 (76.92%) | 📈 view plot 🚷 view threshold | 132.82(0.00%)Baseline: 132.82 | 172.67 (76.92%) | 📈 view plot 🚷 view threshold | 749.48(0.00%)Baseline: 749.48 | 524.64 (70.00%) |
| /client_side_manual_render: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 16.08(0.00%)Baseline: 16.08 | 20.90 (76.92%) | 📈 view plot 🚷 view threshold | 24.24(0.00%)Baseline: 24.24 | 31.51 (76.92%) | 📈 view plot 🚷 view threshold | 173.09(0.00%)Baseline: 173.09 | 225.02 (76.92%) | 📈 view plot 🚷 view threshold | 477.89(0.00%)Baseline: 477.89 | 334.52 (70.00%) |
| /client_side_rescript_hello_world: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 11.97(0.00%)Baseline: 11.97 | 15.56 (76.92%) | 📈 view plot 🚷 view threshold | 21.16(0.00%)Baseline: 21.16 | 27.51 (76.92%) | 📈 view plot 🚷 view threshold | 74.10(0.00%)Baseline: 74.10 | 96.33 (76.92%) | 📈 view plot 🚷 view threshold | 683.17(0.00%)Baseline: 683.17 | 478.22 (70.00%) |
| /console_logs_in_async_server: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 2,120.11(0.00%)Baseline: 2,120.11 | 2,756.14 (76.92%) | 📈 view plot 🚷 view threshold | 2,150.79(0.00%)Baseline: 2,150.79 | 2,796.03 (76.92%) | 📈 view plot 🚷 view threshold | 23,329.98(0.00%)Baseline: 23,329.98 | 30,328.97 (76.92%) | 📈 view plot 🚷 view threshold | 2.75(0.00%)Baseline: 2.75 | 1.93 (70.00%) |
| /context_function_return_jsx: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 8.76(0.00%)Baseline: 8.76 | 11.39 (76.92%) | 📈 view plot 🚷 view threshold | 21.06(0.00%)Baseline: 21.06 | 27.38 (76.92%) | 📈 view plot 🚷 view threshold | 81.14(0.00%)Baseline: 81.14 | 105.48 (76.92%) | 📈 view plot 🚷 view threshold | 754.22(0.00%)Baseline: 754.22 | 527.95 (70.00%) |
| /context_function_return_jsx: Pro | 📈 view plot 🚷 view threshold | 100.00(0.00%)Baseline: 100.00 | 130.00 (76.92%) | 📈 view plot 🚷 view threshold | 16.35(0.00%)Baseline: 16.35 | 21.26 (76.92%) | 📈 view plot 🚷 view threshold | 25.45(0.00%)Baseline: 25.45 | 33.09 (76.92%) | 📈 view plot 🚷 view threshold | 173.14(0.00%)Baseline: 173.14 | 225.08 (76.92%) | 📈 view plot 🚷 view threshold | 468.06(0.00%)Baseline: 468.06 | 327.64 (70.00%) |
| /css_modules_images_fonts_example: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 350.33(0.00%)Baseline: 350.33 | 455.43 (76.92%) | 📈 view plot 🚷 view threshold | 439.86(0.00%)Baseline: 439.86 | 571.82 (76.92%) | 📈 view plot 🚷 view threshold | 4,008.17(0.00%)Baseline: 4,008.17 | 5,210.62 (76.92%) | 📈 view plot 🚷 view threshold | 23.11(0.00%)Baseline: 23.11 | 16.18 (70.00%) |
| /css_modules_images_fonts_example: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.89(0.00%)Baseline: 17.89 | 23.26 (76.92%) | 📈 view plot 🚷 view threshold | 29.21(0.00%)Baseline: 29.21 | 37.97 (76.92%) | 📈 view plot 🚷 view threshold | 151.99(0.00%)Baseline: 151.99 | 197.59 (76.92%) | 📈 view plot 🚷 view threshold | 430.32(0.00%)Baseline: 430.32 | 301.22 (70.00%) |
| /empty: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 5.37(0.00%)Baseline: 5.37 | 6.98 (76.92%) | 📈 view plot 🚷 view threshold | 7.43(0.00%)Baseline: 7.43 | 9.66 (76.92%) | 📈 view plot 🚷 view threshold | 62.03(0.00%)Baseline: 62.03 | 80.64 (76.92%) | 📈 view plot 🚷 view threshold | 1,069.87(0.00%)Baseline: 1,069.87 | 748.91 (70.00%) |
| /image_example: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 286.55(0.00%)Baseline: 286.55 | 372.51 (76.92%) | 📈 view plot 🚷 view threshold | 429.29(0.00%)Baseline: 429.29 | 558.08 (76.92%) | 📈 view plot 🚷 view threshold | 4,318.00(0.00%)Baseline: 4,318.00 | 5,613.40 (76.92%) | 📈 view plot 🚷 view threshold | 23.11(0.00%)Baseline: 23.11 | 16.18 (70.00%) |
| /image_example: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 21.29(0.00%)Baseline: 21.29 | 27.68 (76.92%) | 📈 view plot 🚷 view threshold | 29.76(0.00%)Baseline: 29.76 | 38.69 (76.92%) | 📈 view plot 🚷 view threshold | 114.29(0.00%)Baseline: 114.29 | 148.58 (76.92%) | 📈 view plot 🚷 view threshold | 415.25(0.00%)Baseline: 415.25 | 290.68 (70.00%) |
| /lazy_apollo_graphql: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 56.73(0.00%)Baseline: 56.73 | 73.75 (76.92%) | 📈 view plot 🚷 view threshold | 92.07(0.00%)Baseline: 92.07 | 119.69 (76.92%) | 📈 view plot 🚷 view threshold | 313.56(0.00%)Baseline: 313.56 | 407.63 (76.92%) | 📈 view plot 🚷 view threshold | 150.42(0.00%)Baseline: 150.42 | 105.29 (70.00%) |
| /loadable: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 20.34(0.00%)Baseline: 20.34 | 26.44 (76.92%) | 📈 view plot 🚷 view threshold | 36.50(0.00%)Baseline: 36.50 | 47.45 (76.92%) | 📈 view plot 🚷 view threshold | 255.86(0.00%)Baseline: 255.86 | 332.62 (76.92%) | 📈 view plot 🚷 view threshold | 356.20(0.00%)Baseline: 356.20 | 249.34 (70.00%) |
| /manual_render_test: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 9.03(0.00%)Baseline: 9.03 | 11.74 (76.92%) | 📈 view plot 🚷 view threshold | 17.33(0.00%)Baseline: 17.33 | 22.53 (76.92%) | 📈 view plot 🚷 view threshold | 106.14(0.00%)Baseline: 106.14 | 137.98 (76.92%) | 📈 view plot 🚷 view threshold | 749.15(0.00%)Baseline: 749.15 | 524.40 (70.00%) |
| /posts_page: Pro | 📈 view plot 🚷 view threshold | 100.00(0.00%)Baseline: 100.00 | 130.00 (76.92%) | 📈 view plot 🚷 view threshold | 8.07(0.00%)Baseline: 8.07 | 10.49 (76.92%) | 📈 view plot 🚷 view threshold | 11.74(0.00%)Baseline: 11.74 | 15.26 (76.92%) | 📈 view plot 🚷 view threshold | 85.74(0.00%)Baseline: 85.74 | 111.46 (76.92%) | 📈 view plot 🚷 view threshold | 972.74(0.00%)Baseline: 972.74 | 680.92 (70.00%) |
| /pure_component: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 335.83(0.00%)Baseline: 335.83 | 436.58 (76.92%) | 📈 view plot 🚷 view threshold | 520.29(0.00%)Baseline: 520.29 | 676.38 (76.92%) | 📈 view plot 🚷 view threshold | 3,811.18(0.00%)Baseline: 3,811.18 | 4,954.53 (76.92%) | 📈 view plot 🚷 view threshold | 17.85(0.00%)Baseline: 17.85 | 12.49 (70.00%) |
| /pure_component: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.16(0.00%)Baseline: 17.16 | 22.31 (76.92%) | 📈 view plot 🚷 view threshold | 26.61(0.00%)Baseline: 26.61 | 34.59 (76.92%) | 📈 view plot 🚷 view threshold | 180.37(0.00%)Baseline: 180.37 | 234.48 (76.92%) | 📈 view plot 🚷 view threshold | 443.33(0.00%)Baseline: 443.33 | 310.33 (70.00%) |
| /pure_component_wrapped_in_function: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 9.22(0.00%)Baseline: 9.22 | 11.99 (76.92%) | 📈 view plot 🚷 view threshold | 18.49(0.00%)Baseline: 18.49 | 24.04 (76.92%) | 📈 view plot 🚷 view threshold | 111.52(0.00%)Baseline: 111.52 | 144.98 (76.92%) | 📈 view plot 🚷 view threshold | 737.50(0.00%)Baseline: 737.50 | 516.25 (70.00%) |
| /pure_component_wrapped_in_function: Pro | 📈 view plot 🚷 view threshold | 100.00(0.00%)Baseline: 100.00 | 130.00 (76.92%) | 📈 view plot 🚷 view threshold | 15.90(0.00%)Baseline: 15.90 | 20.67 (76.92%) | 📈 view plot 🚷 view threshold | 25.53(0.00%)Baseline: 25.53 | 33.19 (76.92%) | 📈 view plot 🚷 view threshold | 174.92(0.00%)Baseline: 174.92 | 227.40 (76.92%) | 📈 view plot 🚷 view threshold | 371.58(0.00%)Baseline: 371.58 | 260.11 (70.00%) |
| /react_helmet: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 398.05(0.00%)Baseline: 398.05 | 517.47 (76.92%) | 📈 view plot 🚷 view threshold | 444.82(0.00%)Baseline: 444.82 | 578.27 (76.92%) | 📈 view plot 🚷 view threshold | 3,732.90(0.00%)Baseline: 3,732.90 | 4,852.77 (76.92%) | 📈 view plot 🚷 view threshold | 22.98(0.00%)Baseline: 22.98 | 16.09 (70.00%) |
| /react_helmet: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.76(0.00%)Baseline: 18.76 | 24.39 (76.92%) | 📈 view plot 🚷 view threshold | 29.86(0.00%)Baseline: 29.86 | 38.82 (76.92%) | 📈 view plot 🚷 view threshold | 216.96(0.00%)Baseline: 216.96 | 282.05 (76.92%) | 📈 view plot 🚷 view threshold | 417.58(0.00%)Baseline: 417.58 | 292.31 (70.00%) |
| /react_helmet_broken: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 362.01(0.00%)Baseline: 362.01 | 470.61 (76.92%) | 📈 view plot 🚷 view threshold | 446.89(0.00%)Baseline: 446.89 | 580.96 (76.92%) | 📈 view plot 🚷 view threshold | 4,007.91(0.00%)Baseline: 4,007.91 | 5,210.28 (76.92%) | 📈 view plot 🚷 view threshold | 22.59(0.00%)Baseline: 22.59 | 15.81 (70.00%) |
| /react_helmet_broken: Pro | 📈 view plot 🚷 view threshold | 100.00(0.00%)Baseline: 100.00 | 130.00 (76.92%) | 📈 view plot 🚷 view threshold | 18.35(0.00%)Baseline: 18.35 | 23.86 (76.92%) | 📈 view plot 🚷 view threshold | 27.24(0.00%)Baseline: 27.24 | 35.41 (76.92%) | 📈 view plot 🚷 view threshold | 200.89(0.00%)Baseline: 200.89 | 261.16 (76.92%) | 📈 view plot 🚷 view threshold | 419.52(0.00%)Baseline: 419.52 | 293.66 (70.00%) |
| /react_router: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 370.50(0.00%)Baseline: 370.50 | 481.65 (76.92%) | 📈 view plot 🚷 view threshold | 462.37(0.00%)Baseline: 462.37 | 601.08 (76.92%) | 📈 view plot 🚷 view threshold | 4,389.00(0.00%)Baseline: 4,389.00 | 5,705.70 (76.92%) | 📈 view plot 🚷 view threshold | 21.99(0.00%)Baseline: 21.99 | 15.39 (70.00%) |
| /react_router: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 15.36(0.00%)Baseline: 15.36 | 19.97 (76.92%) | 📈 view plot 🚷 view threshold | 20.44(0.00%)Baseline: 20.44 | 26.57 (76.92%) | 📈 view plot 🚷 view threshold | 379.89(0.00%)Baseline: 379.89 | 493.86 (76.92%) | 📈 view plot 🚷 view threshold | 323.68(0.00%)Baseline: 323.68 | 226.58 (70.00%) |
| /redis_receiver: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 78.82(0.00%)Baseline: 78.82 | 102.47 (76.92%) | 📈 view plot 🚷 view threshold | 125.63(0.00%)Baseline: 125.63 | 163.32 (76.92%) | 📈 view plot 🚷 view threshold | 542.41(0.00%)Baseline: 542.41 | 705.13 (76.92%) | 📈 view plot 🚷 view threshold | 105.47(0.00%)Baseline: 105.47 | 73.83 (70.00%) |
| /render_js: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 329.64(0.00%)Baseline: 329.64 | 428.53 (76.92%) | 📈 view plot 🚷 view threshold | 410.49(0.00%)Baseline: 410.49 | 533.64 (76.92%) | 📈 view plot 🚷 view threshold | 3,813.89(0.00%)Baseline: 3,813.89 | 4,958.06 (76.92%) | 📈 view plot 🚷 view threshold | 24.66(0.00%)Baseline: 24.66 | 17.26 (70.00%) |
| /render_js: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.45(0.00%)Baseline: 17.45 | 22.68 (76.92%) | 📈 view plot 🚷 view threshold | 27.24(0.00%)Baseline: 27.24 | 35.41 (76.92%) | 📈 view plot 🚷 view threshold | 187.81(0.00%)Baseline: 187.81 | 244.15 (76.92%) | 📈 view plot 🚷 view threshold | 435.59(0.00%)Baseline: 435.59 | 304.91 (70.00%) |
| /rendered_html: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 388.52(0.00%)Baseline: 388.52 | 505.08 (76.92%) | 📈 view plot 🚷 view threshold | 439.18(0.00%)Baseline: 439.18 | 570.93 (76.92%) | 📈 view plot 🚷 view threshold | 3,319.75(0.00%)Baseline: 3,319.75 | 4,315.68 (76.92%) | 📈 view plot 🚷 view threshold | 23.37(0.00%)Baseline: 23.37 | 16.36 (70.00%) |
| /rendered_html: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 20.69(0.00%)Baseline: 20.69 | 26.90 (76.92%) | 📈 view plot 🚷 view threshold | 29.03(0.00%)Baseline: 29.03 | 37.74 (76.92%) | 📈 view plot 🚷 view threshold | 113.26(0.00%)Baseline: 113.26 | 147.24 (76.92%) | 📈 view plot 🚷 view threshold | 427.64(0.00%)Baseline: 427.64 | 299.35 (70.00%) |
|
| Branch | alexeyr/performance-tests |
| Testbed | github-actions |
Click to view all benchmark results
| Benchmark | failed_pct | Benchmark Result % (Result Δ%) | Upper Boundary % (Limit %) | p50_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | p90_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | p99_latency | Benchmark Result ms (Result Δ%) | Upper Boundary ms (Limit %) | rps | Benchmark Result req/s (Result Δ%) | Lower Boundary req/s (Limit %) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /rsc_posts_page_over_http: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 19.30(0.00%)Baseline: 19.30 | 25.09 (76.92%) | 📈 view plot 🚷 view threshold | 31.73(0.00%)Baseline: 31.73 | 41.25 (76.92%) | 📈 view plot 🚷 view threshold | 154.58(0.00%)Baseline: 154.58 | 200.95 (76.92%) | 📈 view plot 🚷 view threshold | 408.72(0.00%)Baseline: 408.72 | 286.10 (70.00%) |
| /rsc_posts_page_over_redis: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 60.79(0.00%)Baseline: 60.79 | 79.03 (76.92%) | 📈 view plot 🚷 view threshold | 93.54(0.00%)Baseline: 93.54 | 121.60 (76.92%) | 📈 view plot 🚷 view threshold | 792.47(0.00%)Baseline: 792.47 | 1,030.21 (76.92%) | 📈 view plot 🚷 view threshold | 112.85(0.00%)Baseline: 112.85 | 79.00 (70.00%) |
| /server_render_with_timeout: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.61(0.00%)Baseline: 18.61 | 24.19 (76.92%) | 📈 view plot 🚷 view threshold | 22.89(0.00%)Baseline: 22.89 | 29.76 (76.92%) | 📈 view plot 🚷 view threshold | 342.93(0.00%)Baseline: 342.93 | 445.81 (76.92%) | 📈 view plot 🚷 view threshold | 310.05(0.00%)Baseline: 310.05 | 217.04 (70.00%) |
| /server_router: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 21.70(0.00%)Baseline: 21.70 | 28.21 (76.92%) | 📈 view plot 🚷 view threshold | 31.51(0.00%)Baseline: 31.51 | 40.96 (76.92%) | 📈 view plot 🚷 view threshold | 124.99(0.00%)Baseline: 124.99 | 162.49 (76.92%) | 📈 view plot 🚷 view threshold | 407.44(0.00%)Baseline: 407.44 | 285.21 (70.00%) |
| /server_router_client_render: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 19.22(0.00%)Baseline: 19.22 | 24.99 (76.92%) | 📈 view plot 🚷 view threshold | 26.69(0.00%)Baseline: 26.69 | 34.70 (76.92%) | 📈 view plot 🚷 view threshold | 106.03(0.00%)Baseline: 106.03 | 137.84 (76.92%) | 📈 view plot 🚷 view threshold | 462.50(0.00%)Baseline: 462.50 | 323.75 (70.00%) |
| /server_side_hello_world: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 353.25(0.00%)Baseline: 353.25 | 459.23 (76.92%) | 📈 view plot 🚷 view threshold | 442.39(0.00%)Baseline: 442.39 | 575.11 (76.92%) | 📈 view plot 🚷 view threshold | 4,038.74(0.00%)Baseline: 4,038.74 | 5,250.36 (76.92%) | 📈 view plot 🚷 view threshold | 23.23(0.00%)Baseline: 23.23 | 16.26 (70.00%) |
| /server_side_hello_world: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.39(0.00%)Baseline: 18.39 | 23.91 (76.92%) | 📈 view plot 🚷 view threshold | 29.46(0.00%)Baseline: 29.46 | 38.30 (76.92%) | 📈 view plot 🚷 view threshold | 202.57(0.00%)Baseline: 202.57 | 263.34 (76.92%) | 📈 view plot 🚷 view threshold | 424.97(0.00%)Baseline: 424.97 | 297.48 (70.00%) |
| /server_side_hello_world_es5: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 348.05(0.00%)Baseline: 348.05 | 452.46 (76.92%) | 📈 view plot 🚷 view threshold | 436.28(0.00%)Baseline: 436.28 | 567.16 (76.92%) | 📈 view plot 🚷 view threshold | 3,835.34(0.00%)Baseline: 3,835.34 | 4,985.94 (76.92%) | 📈 view plot 🚷 view threshold | 23.21(0.00%)Baseline: 23.21 | 16.25 (70.00%) |
| /server_side_hello_world_es5: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 19.10(0.00%)Baseline: 19.10 | 24.83 (76.92%) | 📈 view plot 🚷 view threshold | 28.54(0.00%)Baseline: 28.54 | 37.10 (76.92%) | 📈 view plot 🚷 view threshold | 258.37(0.00%)Baseline: 258.37 | 335.88 (76.92%) | 📈 view plot 🚷 view threshold | 408.33(0.00%)Baseline: 408.33 | 285.83 (70.00%) |
| /server_side_hello_world_hooks: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 350.96(0.00%)Baseline: 350.96 | 456.25 (76.92%) | 📈 view plot 🚷 view threshold | 446.32(0.00%)Baseline: 446.32 | 580.22 (76.92%) | 📈 view plot 🚷 view threshold | 4,114.60(0.00%)Baseline: 4,114.60 | 5,348.98 (76.92%) | 📈 view plot 🚷 view threshold | 23.12(0.00%)Baseline: 23.12 | 16.18 (70.00%) |
| /server_side_hello_world_hooks: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.03(0.00%)Baseline: 18.03 | 23.44 (76.92%) | 📈 view plot 🚷 view threshold | 27.28(0.00%)Baseline: 27.28 | 35.46 (76.92%) | 📈 view plot 🚷 view threshold | 245.07(0.00%)Baseline: 245.07 | 318.59 (76.92%) | 📈 view plot 🚷 view threshold | 429.92(0.00%)Baseline: 429.92 | 300.94 (70.00%) |
| /server_side_hello_world_props: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 350.04(0.00%)Baseline: 350.04 | 455.05 (76.92%) | 📈 view plot 🚷 view threshold | 434.12(0.00%)Baseline: 434.12 | 564.36 (76.92%) | 📈 view plot 🚷 view threshold | 3,997.86(0.00%)Baseline: 3,997.86 | 5,197.22 (76.92%) | 📈 view plot 🚷 view threshold | 23.19(0.00%)Baseline: 23.19 | 16.23 (70.00%) |
| /server_side_hello_world_shared_store: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 713.29(0.00%)Baseline: 713.29 | 927.28 (76.92%) | 📈 view plot 🚷 view threshold | 984.00(0.00%)Baseline: 984.00 | 1,279.20 (76.92%) | 📈 view plot 🚷 view threshold | 8,193.55(0.00%)Baseline: 8,193.55 | 10,651.61 (76.92%) | 📈 view plot 🚷 view threshold | 11.17(0.00%)Baseline: 11.17 | 7.82 (70.00%) |
| /server_side_hello_world_shared_store: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 20.96(0.00%)Baseline: 20.96 | 27.25 (76.92%) | 📈 view plot 🚷 view threshold | 30.99(0.00%)Baseline: 30.99 | 40.29 (76.92%) | 📈 view plot 🚷 view threshold | 224.99(0.00%)Baseline: 224.99 | 292.49 (76.92%) | 📈 view plot 🚷 view threshold | 374.51(0.00%)Baseline: 374.51 | 262.16 (70.00%) |
| /server_side_hello_world_shared_store_controller: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 801.28(0.00%)Baseline: 801.28 | 1,041.66 (76.92%) | 📈 view plot 🚷 view threshold | 990.52(0.00%)Baseline: 990.52 | 1,287.68 (76.92%) | 📈 view plot 🚷 view threshold | 4,452.97(0.00%)Baseline: 4,452.97 | 5,788.86 (76.92%) | 📈 view plot 🚷 view threshold | 11.24(0.00%)Baseline: 11.24 | 7.87 (70.00%) |
| /server_side_hello_world_shared_store_controller: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.26(0.00%)Baseline: 17.26 | 22.44 (76.92%) | 📈 view plot 🚷 view threshold | 28.27(0.00%)Baseline: 28.27 | 36.75 (76.92%) | 📈 view plot 🚷 view threshold | 274.23(0.00%)Baseline: 274.23 | 356.50 (76.92%) | 📈 view plot 🚷 view threshold | 375.78(0.00%)Baseline: 375.78 | 263.05 (70.00%) |
| /server_side_hello_world_shared_store_defer: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 710.27(0.00%)Baseline: 710.27 | 923.35 (76.92%) | 📈 view plot 🚷 view threshold | 967.07(0.00%)Baseline: 967.07 | 1,257.19 (76.92%) | 📈 view plot 🚷 view threshold | 8,722.08(0.00%)Baseline: 8,722.08 | 11,338.70 (76.92%) | 📈 view plot 🚷 view threshold | 11.17(0.00%)Baseline: 11.17 | 7.82 (70.00%) |
| /server_side_hello_world_shared_store_defer: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 21.14(0.00%)Baseline: 21.14 | 27.48 (76.92%) | 📈 view plot 🚷 view threshold | 31.65(0.00%)Baseline: 31.65 | 41.15 (76.92%) | 📈 view plot 🚷 view threshold | 224.12(0.00%)Baseline: 224.12 | 291.36 (76.92%) | 📈 view plot 🚷 view threshold | 371.51(0.00%)Baseline: 371.51 | 260.06 (70.00%) |
| /server_side_hello_world_with_options: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 365.53(0.00%)Baseline: 365.53 | 475.19 (76.92%) | 📈 view plot 🚷 view threshold | 446.51(0.00%)Baseline: 446.51 | 580.46 (76.92%) | 📈 view plot 🚷 view threshold | 3,995.82(0.00%)Baseline: 3,995.82 | 5,194.57 (76.92%) | 📈 view plot 🚷 view threshold | 23.12(0.00%)Baseline: 23.12 | 16.18 (70.00%) |
| /server_side_hello_world_with_options: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 15.83(0.00%)Baseline: 15.83 | 20.58 (76.92%) | 📈 view plot 🚷 view threshold | 22.30(0.00%)Baseline: 22.30 | 28.99 (76.92%) | 📈 view plot 🚷 view threshold | 389.35(0.00%)Baseline: 389.35 | 506.15 (76.92%) | 📈 view plot 🚷 view threshold | 305.33(0.00%)Baseline: 305.33 | 213.73 (70.00%) |
| /server_side_log_throw: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 290.59(0.00%)Baseline: 290.59 | 377.77 (76.92%) | 📈 view plot 🚷 view threshold | 437.03(0.00%)Baseline: 437.03 | 568.14 (76.92%) | 📈 view plot 🚷 view threshold | 4,463.32(0.00%)Baseline: 4,463.32 | 5,802.32 (76.92%) | 📈 view plot 🚷 view threshold | 22.80(0.00%)Baseline: 22.80 | 15.96 (70.00%) |
| /server_side_log_throw: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.42(0.00%)Baseline: 18.42 | 23.95 (76.92%) | 📈 view plot 🚷 view threshold | 27.61(0.00%)Baseline: 27.61 | 35.89 (76.92%) | 📈 view plot 🚷 view threshold | 250.74(0.00%)Baseline: 250.74 | 325.96 (76.92%) | 📈 view plot 🚷 view threshold | 425.06(0.00%)Baseline: 425.06 | 297.54 (70.00%) |
| /server_side_log_throw_plain_js: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 358.71(0.00%)Baseline: 358.71 | 466.32 (76.92%) | 📈 view plot 🚷 view threshold | 441.66(0.00%)Baseline: 441.66 | 574.16 (76.92%) | 📈 view plot 🚷 view threshold | 3,969.53(0.00%)Baseline: 3,969.53 | 5,160.39 (76.92%) | 📈 view plot 🚷 view threshold | 23.11(0.00%)Baseline: 23.11 | 16.18 (70.00%) |
| /server_side_log_throw_plain_js: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.09(0.00%)Baseline: 17.09 | 22.22 (76.92%) | 📈 view plot 🚷 view threshold | 25.89(0.00%)Baseline: 25.89 | 33.66 (76.92%) | 📈 view plot 🚷 view threshold | 187.59(0.00%)Baseline: 187.59 | 243.87 (76.92%) | 📈 view plot 🚷 view threshold | 454.36(0.00%)Baseline: 454.36 | 318.05 (70.00%) |
| /server_side_log_throw_raise: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 354.20(0.00%)Baseline: 354.20 | 460.46 (76.92%) | 📈 view plot 🚷 view threshold | 439.12(0.00%)Baseline: 439.12 | 570.86 (76.92%) | 📈 view plot 🚷 view threshold | 4,053.44(0.00%)Baseline: 4,053.44 | 5,269.47 (76.92%) | 📈 view plot 🚷 view threshold | 23.10(0.00%)Baseline: 23.10 | 16.17 (70.00%) |
| /server_side_log_throw_raise: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 9.68(0.00%)Baseline: 9.68 | 12.58 (76.92%) | 📈 view plot 🚷 view threshold | 15.59(0.00%)Baseline: 15.59 | 20.27 (76.92%) | 📈 view plot 🚷 view threshold | 137.29(0.00%)Baseline: 137.29 | 178.48 (76.92%) | 📈 view plot 🚷 view threshold | 791.89(0.00%)Baseline: 791.89 | 554.32 (70.00%) |
| /server_side_log_throw_raise_invoker: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 10.61(0.00%)Baseline: 10.61 | 13.79 (76.92%) | 📈 view plot 🚷 view threshold | 17.86(0.00%)Baseline: 17.86 | 23.22 (76.92%) | 📈 view plot 🚷 view threshold | 60.55(0.00%)Baseline: 60.55 | 78.72 (76.92%) | 📈 view plot 🚷 view threshold | 789.21(0.00%)Baseline: 789.21 | 552.45 (70.00%) |
| /server_side_log_throw_raise_invoker: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 6.23(0.00%)Baseline: 6.23 | 8.10 (76.92%) | 📈 view plot 🚷 view threshold | 20.62(0.00%)Baseline: 20.62 | 26.81 (76.92%) | 📈 view plot 🚷 view threshold | 357.36(0.00%)Baseline: 357.36 | 464.57 (76.92%) | 📈 view plot 🚷 view threshold | 500.18(0.00%)Baseline: 500.18 | 350.13 (70.00%) |
| /server_side_redux_app: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 364.61(0.00%)Baseline: 364.61 | 473.99 (76.92%) | 📈 view plot 🚷 view threshold | 452.35(0.00%)Baseline: 452.35 | 588.06 (76.92%) | 📈 view plot 🚷 view threshold | 4,385.45(0.00%)Baseline: 4,385.45 | 5,701.09 (76.92%) | 📈 view plot 🚷 view threshold | 22.26(0.00%)Baseline: 22.26 | 15.58 (70.00%) |
| /server_side_redux_app: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 21.77(0.00%)Baseline: 21.77 | 28.30 (76.92%) | 📈 view plot 🚷 view threshold | 30.48(0.00%)Baseline: 30.48 | 39.62 (76.92%) | 📈 view plot 🚷 view threshold | 118.80(0.00%)Baseline: 118.80 | 154.44 (76.92%) | 📈 view plot 🚷 view threshold | 405.01(0.00%)Baseline: 405.01 | 283.51 (70.00%) |
| /server_side_redux_app_cached: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 10.29(0.00%)Baseline: 10.29 | 13.38 (76.92%) | 📈 view plot 🚷 view threshold | 17.31(0.00%)Baseline: 17.31 | 22.50 (76.92%) | 📈 view plot 🚷 view threshold | 112.97(0.00%)Baseline: 112.97 | 146.86 (76.92%) | 📈 view plot 🚷 view threshold | 712.19(0.00%)Baseline: 712.19 | 498.53 (70.00%) |
| /server_side_redux_app_cached: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 17.53(0.00%)Baseline: 17.53 | 22.79 (76.92%) | 📈 view plot 🚷 view threshold | 39.48(0.00%)Baseline: 39.48 | 51.32 (76.92%) | 📈 view plot 🚷 view threshold | 183.53(0.00%)Baseline: 183.53 | 238.59 (76.92%) | 📈 view plot 🚷 view threshold | 336.09(0.00%)Baseline: 336.09 | 235.26 (70.00%) |
| /stream_async_components: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.85(0.00%)Baseline: 18.85 | 24.51 (76.92%) | 📈 view plot 🚷 view threshold | 29.55(0.00%)Baseline: 29.55 | 38.41 (76.92%) | 📈 view plot 🚷 view threshold | 196.37(0.00%)Baseline: 196.37 | 255.28 (76.92%) | 📈 view plot 🚷 view threshold | 410.22(0.00%)Baseline: 410.22 | 287.15 (70.00%) |
| /turbo_frame_tag_hello_world: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 8.95(0.00%)Baseline: 8.95 | 11.63 (76.92%) | 📈 view plot 🚷 view threshold | 17.61(0.00%)Baseline: 17.61 | 22.89 (76.92%) | 📈 view plot 🚷 view threshold | 104.81(0.00%)Baseline: 104.81 | 136.25 (76.92%) | 📈 view plot 🚷 view threshold | 769.99(0.00%)Baseline: 769.99 | 538.99 (70.00%) |
| /turbolinks_cache_disabled: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 7.71(0.00%)Baseline: 7.71 | 10.02 (76.92%) | 📈 view plot 🚷 view threshold | 14.60(0.00%)Baseline: 14.60 | 18.98 (76.92%) | 📈 view plot 🚷 view threshold | 190.59(0.00%)Baseline: 190.59 | 247.77 (76.92%) | 📈 view plot 🚷 view threshold | 714.59(0.00%)Baseline: 714.59 | 500.21 (70.00%) |
| /turbolinks_cache_disabled: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 18.78(0.00%)Baseline: 18.78 | 24.41 (76.92%) | 📈 view plot 🚷 view threshold | 26.75(0.00%)Baseline: 26.75 | 34.77 (76.92%) | 📈 view plot 🚷 view threshold | 102.92(0.00%)Baseline: 102.92 | 133.80 (76.92%) | 📈 view plot 🚷 view threshold | 465.93(0.00%)Baseline: 465.93 | 326.15 (70.00%) |
| /xhr_refresh: Core | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 672.82(0.00%)Baseline: 672.82 | 874.67 (76.92%) | 📈 view plot 🚷 view threshold | 941.49(0.00%)Baseline: 941.49 | 1,223.94 (76.92%) | 📈 view plot 🚷 view threshold | 7,914.11(0.00%)Baseline: 7,914.11 | 10,288.34 (76.92%) | 📈 view plot 🚷 view threshold | 11.77(0.00%)Baseline: 11.77 | 8.24 (70.00%) |
| /xhr_refresh: Pro | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 21.73(0.00%)Baseline: 21.73 | 28.25 (76.92%) | 📈 view plot 🚷 view threshold | 33.79(0.00%)Baseline: 33.79 | 43.93 (76.92%) | 📈 view plot 🚷 view threshold | 245.79(0.00%)Baseline: 245.79 | 319.53 (76.92%) | 📈 view plot 🚷 view threshold | 365.66(0.00%)Baseline: 365.66 | 255.96 (70.00%) |
| Pro Node Renderer: react_ssr (non-RSC) | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 5.00(0.00%)Baseline: 5.00 | 6.50 (76.92%) | 📈 view plot 🚷 view threshold | 15.47(0.00%)Baseline: 15.47 | 20.11 (76.92%) | 📈 view plot 🚷 view threshold | 21.34(0.00%)Baseline: 21.34 | 27.74 (76.92%) | 📈 view plot 🚷 view threshold | 1,313.70(0.00%)Baseline: 1,313.70 | 919.59 (70.00%) |
| Pro Node Renderer: simple_eval (non-RSC) | 📈 view plot 🚷 view threshold | 0.00(0.00%)Baseline: 0.00 | 0.00 (0.00%) | 📈 view plot 🚷 view threshold | 4.58(0.00%)Baseline: 4.58 | 5.95 (76.92%) | 📈 view plot 🚷 view threshold | 14.98(0.00%)Baseline: 14.98 | 19.47 (76.92%) | 📈 view plot 🚷 view threshold | 23.10(0.00%)Baseline: 23.10 | 30.03 (76.92%) | 📈 view plot 🚷 view threshold | 1,373.53(0.00%)Baseline: 1,373.53 | 961.47 (70.00%) |
Summary
Add performance tests. Fixes #1777.
Pull Request checklist
[ ] Add/update test to cover these changesThis change is
Summary by CodeRabbit
New Features
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.