a framework makes it easier to perform well by either providing a better starting point or providing constraints and characteristics that make it hard to build something that doesn’t perform well.
Scripting related CPU time (in milliseconds) for mobile devices, in percentiles
The takeaway is that modern frameworks, when deploying in a best-in-class manner, can be as lightweight as an average framworkless website, but on average – and absolutely including worst case implementations – modern frameworks are incredibly bloated. In particular, Angular serves heavy pages, React serves slow pages.
From observing the data between sites that detect React at all and sites that only detect React (as in, for sure no jQuery) Kadlec observes that main thread performance drops significantly. This is a clear indication that migrating from jQuery to React harms main thread performance.
If you have React and jQuery running alongside each other, you’re more likely to be in the midst of a migration to React, or a mixed codebase. Since we have already seen that sites with jQuery spend less time on the main thread than sites with React, it makes sense that having some functionality still driven by jQuery would bring the numbers down a bit.
Additionally, Kadlec observes that mobile devices suffer from this performance decrease more than desktop devices. This suggests that modern frameworks explicitly are avoiding a mobile-first mentality, and relying on contemporary hardware.
To wrap up, Kadlec suggests that this data isn’t indicative of the baseline performance capabilities of a framework, but rather indicates that the implementation is at fault. If in general the implementation of a framework is causing performance issues, that the primary fault is in the ecosystem, documentation, and community standards around that framework.