Benchmarks show Spectre patch slows iPhone JavaScript performance by 40%

On the firsts week of January in 2018 the world was shocked by the Meltdown and Spectre bugs. The bugs were found in desktop processors from Intel and AMD as well as mobile devices. These are being patched, but there is a performance hit.

There has been widespread discussion on the performance hits, with servers and desktop computers taking a significant (up to 30%) performance hit. This is a serious issue that has caused outages and reduced performance in services from Epic Games, Reddit and others after applying patches for Meltdown and Spectre attacks.

However mainline connected computing devices can always make up for lost performance by adding more (albeit at a higher cost). But for mobile devices like Androids and iPhones running iOS operating system the issue is more damaging. Even before the slowdown these have significantly less computing power, which is further reduced.

Scaling to more powerful processors in the future is not a solution either, since these devices are limited by battery capability. This means users will either have to live with reduced performance or look at larger devices with larger batteries to achieve the same battery life.

Spectre update impact on iPhone (iOS) performance

In a new set of benchmarks on iOS done by Melv1n the results for iPhones are significant as well. According to the benchmarks done using Geekbench benchmarking suite, the devices suffer from up to 40 percent reductions in raw number crunching:

This is done with an iPhone 6 with and Apple A8 processor on iOS versions 11.2.0 (unpatched) and iOS 11.2.2 (patched). This is a significant factor for mobile apps as well as sophisticated web applications and Progressive Web Applications (PWA) - all of which were vulnerabe via JavaScript.

With the HTML5 Parse and DOM performance lowering, all web browsing and redering is slowed down on all iPad and iPhone devices from Apple. The benchmark also includes numbers for multicore CPU computing, but for JavaScript this is not useful as the language is by define single threaded.