Update: Apple has shared the following statement with TechCrunch confirming the functionality and its reasoning:

Our goal is to deliver the best experience for customers, which includes overall performance and prolonging the life of their devices. Lithium-ion batteries become less capable of supplying peak current demands when in cold conditions, have a low battery charge or as they age over time, which can result in the device unexpectedly shutting down to protect its electronic components. Last year we released a feature for iPhone 6, iPhone 6s and iPhone SE to smooth out the instantaneous peaks only when needed to prevent the device from unexpectedly shutting down during these conditions. We’ve now extended that feature to iPhone 7 with iOS 11.2, and plan to add support for other products in the future.

Original story: Based on anecdotal observation, many iPhone users have long believed that older iPhones get slower over time. Generally, people have assumed that this is because of new features and additions in new versions of iOS that are better optimized for the latest phones.

But Reddit users, and Geekbench developer John Poole, have a compelling new theory, backed up by benchmarks: the iPhone may throttle performance to preserve battery life or avoid unexpected shutdowns as the battery degrades.

View more

Several days ago, Reddit user TeckFire posted a report to the iPhone subreddit stating that, after experiencing slowdown on their iPhone 6S, they replaced the battery with a new one and saw significant improvements in benchmarks—seen below, via their imgur post:

Commenters shared theories and benchmarks in response to TeckFire's findings. But the theory picked up even more steam when Geekbench founder and developer John Poole posted a blog post exploring the issue with his own benchmarks, this time comparing across versions of iOS to control for that.

Here's how he said he established the test:

I've plotted the kernel density of Geekbench 4 single-core scores for the iPhone 6s and the iPhone 7 running different versions of iOS. Scores obtained in low-power mode are not included in the distribution.

On iOS 10.2.0, the iPhone 6S did not significantly exhibit this throttling behavior. However, it is detected in iOS 10.2.1, as well as iOS 11.2.0.

The introduction of this behavior in iOS 10.2.1 might have been a coincidence, though nothing is currently certain. Before January of 2017, iPhone 6 and 6S owners (myself included, earlier in 2016) reported that their phones would shut down unexpectedly as the battery reduced. Apple's iOS 10.2.1 addressed the issue. Apple explained its approach in the following update, shared with TechCrunch in February:

With iOS 10.2.1, Apple made improvements to reduce occurrences of unexpected shutdowns that a small number of users were experiencing with their iPhone. iOS 10.2.1 already has over 50% of active iOS devices upgraded, and the diagnostic data we’ve received from upgraders shows that, for this small percentage of users experiencing the issue, we’re seeing a more than 80% reduction in iPhone 6s and over 70% reduction on iPhone 6 of devices unexpectedly shutting down.

Reports at the time suggested that the iPhone 7 was not affected by the shutdown issue. However, Poole did find similar distributions in Geekbench scores on the iPhone 7 to those he found in the iPhone 6S—but with one key difference. Here are his results, again courtesy of his blog post.

In this case, the result did not emerge until the phone was updated to iOS 11.2.0.

We tested on a year-old iPhone 7 (running iOS 11.1.1) that has seen daily battery drain and recharge. We found that its CPU frequency was 2,333MHz, close to the expected 2.35GHz. We also ran Geekbench's CPU test on the phone and got average results of 3,503 for single-core and 5,973 for multi-core—almost the same as the 3,506 and 6,073 we got when we first tested the iPhone 7.


In iOS 11.2.1, we didn't see substantially different results. The frequency read at 2,345MHz, and our average Geekbench results were 3,491 and 5,860 for single and multi-core, respectively. Obviously, the nature of the test is different from those run by Poole. But while we weren't able to replicate any slowdown in this very limited test, several Reddit users were.