Framework Performance Benchmark 2026
Bundle Size, TTI, Memory, and Lighthouse Scores Compared
Performance in web development is highly contextual. A framework that excels at rendering 10,000 table rows efficiently might struggle to deliver a fast Time to Interactive (TTI) on a low-end mobile device over a 3G network. In 2026, the discussion around framework performance has matured beyond simple "Hello World" bundle sizes. This benchmark analyzes the leading JavaScript frameworks across the metrics that actually impact user experience.
Key Takeaways
- Solid is the undisputed king of raw DOM manipulation speed and memory efficiency.
- Astro is the benchmark leader for Core Web Vitals (Lighthouse) due to shipping zero JavaScript by default.
- Svelte provides the best balance of small bundle size and excellent runtime performance for typical SPAs.
- React and Angular carry heavier runtimes, requiring more optimization to achieve top-tier performance on mobile devices.
Contextualize these numbers with our full JavaScript Framework Landscape 2026.
1. The Core Metrics Defined
Before analyzing the results, it's crucial to define what we are measuring.
Initial Bundle Size (Gzipped)
This is the cost of entry. The amount of JavaScript the browser must download, parse, and compile before the application can even begin to hydrate. Smaller bundles correlate directly with faster load times, especially on slow networks.
Time to Interactive (TTI)
TTI measures how long it takes for a page to become fully interactive (i.e., when event listeners are attached and the main thread is idle). Heavy frameworks with complex hydration processes suffer here.
DOM Manipulation Speed
This metric measures how quickly the framework can update the DOM when state changes (e.g., adding 1,000 rows to a table, or updating a progress bar 60 times a second). This is where Virtual DOMs are tested against Compilers and Signals.
Memory Consumption
How much RAM does the framework require to hold its internal state (like a Virtual DOM tree) while the application is running? High memory usage can cause sluggishness and crashing on low-end devices.
2. Benchmark Results: Raw DOM Manipulation
These results are based on standard industry benchmarks (like the JS Framework Benchmark), which measure operations like creating rows, replacing rows, partial updates, and clearing tables.
1. Solid
Solid is consistently the fastest framework in raw DOM operations. Its fine-grained reactivity means it surgically updates the exact DOM node associated with a changed signal, bypassing the overhead of Virtual DOM diffing entirely.
2. Svelte
Svelte is a close second. Its compiler generates highly optimized, imperative DOM update code. It is significantly faster than Virtual DOM-based frameworks for complex updates.
3. Vue 3
Vue 3 performs exceptionally well, often matching or slightly beating React. Its proxy-based reactivity system and optimized Virtual DOM make it highly performant for typical applications.
4. React
React is generally slower in these synthetic benchmarks than Solid or Svelte due to the overhead of recreating and diffing the Virtual DOM tree. However, React's performance is "fast enough" for 95% of real-world applications, and its concurrent mode helps keep the UI responsive during heavy updates.
5. Angular
Modern Angular (with Signals) has vastly improved its performance, bringing it much closer to Vue and React. Older Angular codebases relying heavily on Zone.js for change detection generally perform worse.
3. Benchmark Results: Initial Bundle Size
This measures the minimum required framework code (minified and gzipped). Note that meta-frameworks (Next.js, Nuxt) add additional routing and SSR overhead.
1. Solid (~3KB)
Solid's runtime is incredibly tiny. It provides the core reactivity primitives (Signals) and nothing more.
2. Svelte (~4KB - Variable)
Svelte does not ship a framework runtime. The size of a Svelte bundle depends entirely on the size of your application code, as the compiler generates the update logic per component. For a "Hello World" app, it is minuscule.
3. Vue (~16KB)
Vue 3 represents an excellent balance. It ships a robust runtime (including its proxy-based reactivity system and Virtual DOM) in a relatively small package.
4. React + ReactDOM (~40KB)
React is significantly heavier. You must ship both the core React library and the ReactDOM renderer. This baseline cost means React applications start with a performance deficit compared to Solid or Svelte, particularly on mobile devices.
5. Angular (~50KB+)
Angular is a "batteries-included" framework. Even with aggressive tree-shaking and standalone components, the base bundle is larger because it includes built-in solutions for complex enterprise requirements.
4. Benchmark Results: Core Web Vitals & Lighthouse
Google's Core Web Vitals are critical for SEO and user experience. They measure loading performance (LCP), interactivity (INP), and visual stability (CLS).
1. Astro (The Undisputed King)
Astro is in a category of its own here. Because it ships zero JavaScript by default (the Islands Architecture), it easily achieves perfect Lighthouse scores (100) for content sites. It simply does not have the hydration overhead that React, Vue, or even Svelte have when used as single-page applications.
2. SvelteKit / Nuxt / Next.js
When comparing the meta-frameworks, SvelteKit often achieves slightly better Lighthouse scores than Next.js due to its smaller initial bundle and faster hydration process. Next.js applications require careful optimization (like extensive use of Server Components and aggressive caching) to achieve perfect scores, especially regarding Interaction to Next Paint (INP) due to React's heavy main-thread execution during hydration.
5. Memory Consumption
Heavy memory consumption leads to garbage collection pauses, which cause jank (stuttering) in animations and scrolling.
- Solid and Svelte are the clear winners. They do not hold a representation of the UI (a Virtual DOM) in memory, dramatically reducing their footprint.
- React and Vue require more memory because they must maintain two copies of the Virtual DOM (the old tree and the new tree) to perform their diffing algorithm.
- Angular historically used significant memory, but recent improvements with Signals have streamlined its change detection process.
Conclusion: Interpreting the Data
Benchmarks are synthetic, and architecture matters more than framework choice. A poorly written Solid application will be slower than a highly optimized React application.
However, the baseline constraints of the framework dictate the effort required to achieve high performance:
- If you are building an e-commerce site or a blog, choose Astro. The zero-JS baseline is unbeatable for SEO and mobile load times.
- If you are building a highly interactive dashboard where DOM update speed is critical, choose Solid or Svelte.
- If you are building a standard SaaS application, React or Vue are perfectly performant, provided you understand their respective reactivity models and optimize accordingly.
Related Framework Comparisons
Dive deeper into the architectural differences driving these performance metrics: