-
Notifications
You must be signed in to change notification settings - Fork 17
Milestone
Description
π§ͺ Performance Benchmark Report β https://explorer.livepeer.org/
Date: 2025-11-12
Environment: Lighthouse v13.0.1 (mobile emulation, slow-4G, 4Γ CPU slowdown)
Runs: 3 consecutive (home-2025-11-12-111910-run1, -112545-run2, -112835-run3)
π Median Results (3-run average)
| Metric | Run 1 | Run 2 | Run 3 | Median | βGoodβ Threshold | Status |
|---|---|---|---|---|---|---|
| Performance Score | ~0.68 | ~0.67 | ~0.68 | β 0.68 | β₯ 0.90 | |
| First Contentful Paint (FCP) | 1.9 s | 2.0 s | 2.0 s | 2.0 s | β€ 1.8 s | |
| Largest Contentful Paint (LCP) | 1.9 s | 2.0 s | 2.0 s | 1.9 s β | β€ 2.5 s | β Good |
| Speed Index | 2.2 s | 2.0 s | 2.1 s | 2.1 s β | β€ 3.0 s | β Good |
| Cumulative Layout Shift (CLS) | 0.00 | 0.00 | 0.00 | 0.00 β | β€ 0.10 | β Excellent |
| Total Blocking Time (TBT) | 3.3 s | 3.2 s | 3.1 s | β 3.2 s β | β€ 0.2 s | π¨ Poor |
| Time to Interactive (TTI) | 33 s | 32 s | 31 s | β 32 s β | β€ 4 s | π¨ Poor |
| Total Transfer Size | 5.6 MB | 5.5 MB | 5.4 MB | β 5.5 MB β | < 2 MB | π¨ Heavy |
π©Ί Diagnosis Summary
β The good
- LCP, CLS, and Speed Index are strong. Layout and image optimization are excellent.
- Server response (TTFB β 50 ms) is fast; backend isnβt the bottleneck.
- ~4.3 MB of JavaScript across ~75 scripts overwhelms the main thread.
- High Total Blocking Time (3 s +) and TTI > 30 s indicate the UI remains unresponsive after paint.
- Hydration and third-party scripts likely block interactivity.
π§© Root Causes
- Excessive client-side JS β large bundles and non-lazy widgets.
- Hydration bottlenecks β React mounts too many components at once.
- Unoptimized 3rd-party scripts β analytics and embeds load early.
π οΈ Recommended Actions (Priority-Ordered)
| Priority | Goal | Recommended Actions |
|---|---|---|
| 1οΈβ£ Reduce shipped JS | Keep each route β€ 350 KB gz | β’ Run @next/bundle-analyzer.β’ Convert heavy UI to Server Components. β’ Lazy-load off-screen code ( dynamic(import, { ssr:false })). |
| 2οΈβ£ Defer non-critical scripts | Lower TBT / INP | β’ Mark analytics/tracking with strategy:"afterInteractive".β’ Defer or async third-party scripts. |
| 3οΈβ£ Parallelize and cache data fetching | Reduce blocking work | β’ Fetch data in parallel on the server. β’ Use ISR ( revalidate) or CDN caching for static data. |
| 4οΈβ£ Audit hydration hotspots | Improve interactivity | β’ Profile top React components for long tasks. β’ Split effects; use React 19 useTransition. |
| 5οΈβ£ Trim assets | Shrink page weight | β’ Remove unused libs and polyfills. β’ Ensure images remain optimized (currently fine β 0.27 MB). |
π― Target Benchmarks
| Metric | Current | Target | Improvement |
|---|---|---|---|
| TBT | 3.2 s | < 0.2 s | β94 % |
| TTI | 32 s | < 4 s | β88 % |
| JS Transfer | 4.3 MB | β€ 0.5 MB gz | β88 % |
| LCP | 1.9 s | β€ 2.2 s | maintain |
| CLS | 0.00 | β€ 0.10 | maintain |
Achieving these should raise the overall Lighthouse Performance Score from β 0.68 β 0.93β0.96 and deliver strong Core Web Vitals for real users.
π Additional Steps
- Add a Lighthouse CI job to GitHub Actions for regression alerts.
- Re-run benchmarks after JS reduction to confirm improvement.
Compiled from 3 Lighthouse v13 mobile runs (2025-11-12).
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
In Review