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.

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:

Related Framework Comparisons

Dive deeper into the architectural differences driving these performance metrics: