Benchmark confirms: aging batteries are the main reason for slowing iPhones
Just last week, a Reddit thread uncovered a surprising iPhone behavior: as more and more users report slow iPhone performance, battery life seems to be the unexpected culprit. It's expected for a battery to lose capacity over time and battery life to decrease, but it is totally unexpected for this to affect the processor performance.
The best way to have better performance on your old iPhone is... a new battery
However, this is indeed happening: users report that changing to a new battery on their old iPhone, increases the processor performance and brings it back to normal. There are hard facts to prove this: popular CPU performance benchmark Geekbench shows that iPhones with older batteries score lower and swapping to a new battery improves the score back to normal.
This is about as close as it gets to the "planned senescence" that people accuse Apple of, but while all of this has been speculation, now we have some fact-based evidence. Geekbench founder John Poole thought it was time to investigate and see if all this is indeed true.
To check performance degradation claims, Poole plotted the kernel density of Geekbench 4 single-core scores using different versions of iOS to see if there is a difference. It's worth mentioning here that Apple is throttling CPU performance in this new way after many users complained their iPhones would unexpectedly shut down even when they have plenty of battery power left. Apple tried offering some users free battery replacements, but issues persisted even with the new batteries. That's when it has decided to throttle CPU performance with an iOS software update.
Reddit user kadupse explains this the following way:
Many iPhone 6s devices were shutting down unexpectedly, even after the battery replacement program (Which many people weren’t entitled to use). Because degraded batteries last much less and end up with a lower voltage Apple’s solution was to scale down CPU performance, it doesn’t solve anything and is a bad experience… but it’s better than having your device shutdown at 40% when you need it the most.
In the charts above, you can see that on iOS 10.2.0, all Geekbench scores gravitate around the 2,500 mark. Then suddenly, after the iOS 10.2.1 update, you can see that results are all over the place: the majority (those with healthy batteries) still are around the 2,500 mark, but there are many throttled devices scoring much lower. With iOS 11.2.0 the issue only worsens with more and more iPhone 6s deviecs affected by lower CPU performance.
iPhone 7 is also affected
The newer iPhone 7 seemed to be immune to those issues until recent iOS 11 developments. Here are the benchmark scores of iPhone 7 running iOS 10.2, iOS 10.2.1 and iOS 11.1.2.
As you can see clearly, all iPhone 7 Geekbench scores gravitate around the 3,500 mark, meaning that there are no artificially throttled devices. Keep in mind that Apple also throttles CPU performance in Low Power Mode, but this is expected behavior and no iPhones used in low power mode were included in this test.
But something interesting - and rather disappointing - happens with iPhone 7 devices after the iOS 11.2 update.
Here, we can suddenly see many iPhones (allegedly ones that already have aging batteries) throttled to much lower frequencies, in a similar way to the iPhone 6s.
What this means simply is that many users that have an aging iPhone battery (obviously, even 1-year old iPhones count as aging), will see a noticeably drop in performance without any notification that it is related to an older battery whatsoever. This is unexpected and will catch off-guard all but the most technical of users who happen to stumble upon articles like the one you are reading. As John Poole of Geekbench rightly points, many users will simply think: "my iPhone is getting slow, I need to replace it", rather than figure out it is in need of a battery replacement.
Things that are NOT allowed: