> It's not only to make them run longer - they're reducing the peak demand on the batteries to avoid spontaneous shutdown when the aged battery can't handle the load.
Yes. I used to have spontaneous shutdowns on my iPhone 6 in cold weather when the fuel gauge indicated a number like 20% and it was this sort of problem that was meant to be fixed: the CPU using too much current, causing the battery voltage to drop enough to trigger the low-voltage/brownout detector, causing the phone to die. The battery would last long enough (from last full charge to needing to recharge) -- it wasn't inadequate in the energy department -- it just couldn't deliver enough power in cold conditions.
Throttling the CPU in those cases (when the aged battery can't deliver enough current) is sensical and extends the life of the phone -- the only serious issue is that the user might think that there is a problem with the CPU or the software (and replace the whole phone) when the problem can be adequately fixed with a new battery (far less expensive than a new phone).
The feature is good but Apple's software should be far more proactive in notifying users that this is happening, if only because users jump to a conclusion of "my old phone can't handle this new iOS update, damn Apple making me buy a new phone" rather than "my battery is too old to reliably deliver whatever current the SOC wants".
I think there’s more to this story than mere aging batteries.
I had the exact symptoms of this issue with my one year old iPhone 6 Plus in fall of 2015. Add in some very strange battery % readings: Even when it failed to shut down, the phone would drop rapidly from 20% to 1% but then remain there for ten minutes or more.
Bizarrely, this behavior (albeit less frequent or severe) jumped to my brand new iPhone 6S Plus in November of that year when I restored it from a backup of the 6 Plus. Both phones had Geniuses run battery diagnostics without finding any unusual degradation.
My guess: Apple’s battery “farming” code designed to maximize its life, level drain and charge across the cells, manage load, estimate charge % remaining... is incredibly sophisticated, even so far as to profile your typical use of a device to inform these decisions and estimates. There have been user-visible bugs in this code related to manual clock updates (something I did a fair bit while traveling), and I bet some fraction of these downclocked users have been the victim of that or related bugs. If the code is “farming” the battery incorrectly, some cells may be charged or drained too much for too long, and greatly increase a phone’s susceptibility to these voltage drops, even while the global status of the battery reads as fine.
Yes. I used to have spontaneous shutdowns on my iPhone 6 in cold weather when the fuel gauge indicated a number like 20% and it was this sort of problem that was meant to be fixed: the CPU using too much current, causing the battery voltage to drop enough to trigger the low-voltage/brownout detector, causing the phone to die. The battery would last long enough (from last full charge to needing to recharge) -- it wasn't inadequate in the energy department -- it just couldn't deliver enough power in cold conditions.
Throttling the CPU in those cases (when the aged battery can't deliver enough current) is sensical and extends the life of the phone -- the only serious issue is that the user might think that there is a problem with the CPU or the software (and replace the whole phone) when the problem can be adequately fixed with a new battery (far less expensive than a new phone).
The feature is good but Apple's software should be far more proactive in notifying users that this is happening, if only because users jump to a conclusion of "my old phone can't handle this new iOS update, damn Apple making me buy a new phone" rather than "my battery is too old to reliably deliver whatever current the SOC wants".