When developers choose a frontend framework, the usual criteria come to mind: performance, ecosystem, maintainability, developer experience, and community support. But there is a factor that is almost never discussed: energy consumption! As software systems grow in scale, the environmental impact of digital technologies is becoming impossible to ignore. While green software engineering research has traditionally focused on servers, cloud infrastructure, and backend optimization, the frontend remains a blind spot. Yet modern web applications run billions of times per day across laptops, desktops, and mobile devices.
So a simple but important question arises:
Does the choice of frontend framework—Angular or React—actually affect energy consumption?
The short answer: yes, and the difference is not negligible.
Why Frontend Energy Consumption Matters
Modern web applications are not static documents. They are dynamic, interactive systems that constantly react to user input, manage application state, update the DOM, and communicate with backend services. Every click, keystroke, and screen update triggers computation. And computation consumes energy.
Individually, the energy cost of a single interaction seems negligible. But at scale—millions of users, long sessions, repeated daily usage—even small inefficiencies add up. They affect battery life, device longevity, and ultimately the environmental footprint of digital services.
Yet frontend framework decisions are rarely made with energy efficiency in mind.
This is the gap our study set out to explore.
How We Compared Angular and React
To compare Angular and React fairly, we designed an experiment that isolates framework-level behavior, removing as many external variables as possible.
Two Identical Applications
We implemented two functionally equivalent frontend applications: one using Angular, the other using React.
Both applications:
- Implement the same use cases
- Provide identical CRUD operations
- Call the same backend APIs
- Exchange the same HTTP requests and responses
- Follow the same interaction flow
They were developed by the same developer, following comparable coding practices. From the user’s perspective—and from the backend’s perspective—the applications behave identically.
The only intentional difference is the frontend framework itself.
This design allows us to attribute any observed energy differences directly to Angular and React, rather than to application logic or developer bias.
Measuring Energy in the Browser
Measuring energy consumption on the frontend is challenging. Many tools rely on indirect proxies like execution time or CPU usage, which do not always reflect real energy use.
To avoid this, we relied on hardware-derived energy measurements at the browser level.
All experiments were conducted using Firefox’s Power Profiler, one of the very few tools capable of attributing energy consumption to a specific browser tab. This feature is currently available on Apple Silicon devices, where the browser can access low-level hardware energy counters.
In practical terms, this means we measured:
- Only the energy consumed by the tab running the frontend application
- Excluding background processes and unrelated activity
The experimental environment was carefully controlled to reduce noise such as background services disabled and Network traffic routed locally.
Reproducible User Interactions
Human interaction introduces variability: different typing speeds, pauses, and timing inconsistencies. To ensure repeatability, all interactions were fully automated. We focused on three common scenarios:
- User creation
- Pet creation
- Order creation
Each scenario involved:
- Loading or refreshing a page
- Filling in a form
- Submitting the data
- Waiting for the response
- Displaying a confirmation
These workflows are typical of many enterprise web applications and stress both rendering and state updates.
Each scenario was executed repeatedly at increasing workload sizes:
- 10 executions
- 50 executions
- 100 executions
This allowed us to study not only average energy consumption, but also how each framework scales under sustained use.
Angular Is More Energy-Efficient
The findings were consistent and clear. Across the full set of executions, Angular consistently consumes less energy than React. On average, Angular achieves an energy reduction of approximately 21.66% compared to React. This difference is not sporadic or driven by a few outliers. Instead, it appears systematic, with Angular’s energy values clustering tightly around a lower mean.
Stability vs Variability
Angular’s energy profile is remarkably stable:
- Energy values show minimal fluctuation
- There are few high-energy spikes
- The distribution remains compact across executions
React, in contrast, exhibits:
- Higher average energy consumption
- Greater variability
- Recurrent peaks where energy usage spikes significantly
Figure 1 illustrates this clearly, showing energy consumption per execution across 100 runs. Angular’s curve is smooth and tightly grouped, while React’s curve exhibits frequent peaks.

What Happens as Workload Increases?
Energy efficiency becomes even more important when applications are used intensively.
Figure 2 shows how energy consumption evolves as workload size increases.
Angular: Flat and Predictable Scaling
For Angular:
- Median energy consumption remains relatively stable across 10, 50, and 100 executions
- Variability increases only slightly
- Distributions remain compact
This suggests that Angular handles repeated interactions efficiently and scales gracefully as usage grows.
React: Rising Cost with Workload
React behaves quite differently:
- Median energy consumption increases with workload size
- Variability grows significantly
- High-energy outliers become more frequent
- Extreme values exceed 0.10 mWh at higher workloads
In simple terms, the more a user interacts with a React application, the more energetically expensive those interactions tend to become—both on average and in worst-case scenarios.

Why Does React Consume More Energy?
The study does not claim definitive causality, but the observed patterns align with known architectural differences.
The Cost of the Virtual DOM
React relies on a Virtual DOM:
- Each state update creates a new in-memory representation of the UI
- The new tree is diffed against the previous one
- A reconciliation algorithm determines which changes to apply
While this abstraction improves developer experience and reduces direct DOM manipulation, it introduces computational overhead:
- Tree construction
- Traversal and comparison
- CPU-intensive reconciliation
Under repeated interactions, these costs accumulate and can translate into higher energy consumption.
Angular’s Change Detection Model
Angular follows a different approach:
- No full Virtual DOM reconstruction
- A more structured change-detection mechanism
- Predictable update paths
This likely reduces unnecessary computation in form-heavy workflows, leading to lower and more stable energy usage.
Why This Should Matter to Developers
At first glance, saving fractions of a milliwatt-hour may seem insignificant. But at scale, these differences matter.
For applications with:
- Millions of users
- Long sessions
- Frequent interactions
Frontend energy efficiency can impact:
- Battery life on user devices
- Overall energy demand
- Environmental footprint
More importantly, these findings challenge the assumption that frontend framework choice is purely about productivity and performance.
Energy efficiency deserves to be part of the decision-making process.
Final Thoughts
Angular and React are both excellent frameworks with strong ecosystems. This study does not argue that one should universally replace the other.
Instead, it highlights a simple but often overlooked reality:
Frontend architectural decisions have real energy consequences.
As sustainability becomes a first-class concern in software engineering, energy consumption should stand alongside performance, maintainability, and developer experience—especially for large-scale web applications.
Frontend engineering is no longer just about pixels and performance.
It is also about power.



