Daemon recentsd using > 90% CPU and battery draining on iPhone 5s despite remedial efforts
Perhaps it's just a coincidence, but since upgrading to 9.3.x (not sure if it was 9.3.2 or 9.3.3), my iPhone 5s has been chewing through its battery like it was candy, forcing me to recharge the phone multiple times each day. Since we were traveling, there was little I could do at first save keeping my charger handy and turning off background processes, minimizing cellular data usage, and using the phone and its apps sparingly. After returning home it just seemed to get worse, and it seemed that the original (3 year old) battery might be past its prime. After two battery swaps, diagnostics, and countless remedial actions, I'm at wit's end. When actively using the phone, I'm likely to drain it from 100% to 20% in 2 hours. When simply in standby except for unavoidable background app activity, it might last as much as 3 or 4 hours. I can stretch it only a bit more in low-power mode. And the phone is very warm to the touch.
Remedial actions (in addition to new batteries) include:
- Reducing screen brightness
- Turning off background app refresh except for two or three apps that absolutely need to be up-to-date
- Turning off location services except while using apps and except for essential system services
- Swiping off apps that are not needed and avoiding casual use. (Yes, I realize that swiping off apps risks reloading from disk, but I don't swipe off frequently used apps.)
- Removing frivolous apps.
- Turning off Bluetooth. The personal hotspot is off, too.
Probably a few other strategies that I don't remember.
Inspecting Settings/Battery offers few clues. The proportion of energy consumption is consistent with the apps that I am using -- NYTimes, WSJ, Mail, Safari, etc., with Home & Lock Screen consuming only 5% or less, and nothing
Still perplexed, I used the Xcode Instruments activity monitor to view ongoing system and app activity. I discovered that the recentsd daemon consistently uses 90% or more CPU (out of 200% -- there are two cores on the 5s), even when the phone is in standby. Only when other applications demand a big share of the CPU does recentsd throttle down, but only as necessary. Unless there is a major app in play, the next biggest CPU consumer is com.apple.dt.ins, at about 6-8%. Most of the other system processes use a small fraction of CPU power. The "System Status" app confirms the overall standby load, which runs consistently at about 60% (out of 100%).
Based on commentary on the web, I'd expect the CPU load during standby or with only "System Status" running to be about 5% or less of CPU, not what is observed.
Furthermore, there is some unknown process that regularly (every 10 seconds or so) appears to crash or warn of low memory when I monitor CPU load with Xcode or System Status, but I'm not sure if this is merely an artifact of the profiling.
I visited the Genius Bar, and Apple suggested I try...
- Reset all settings. This had no effect.
- Erase all content and settings. But not restore. Instead treat it as a new phone. I've not tried this yet. I'd rather not erase everything.
Any ideas? Just what does recentsd do? I've searched high and low for some answers. And why would it be running amok? What should I do next? Can avoid erasing everything?
Thanks.
iPhone 5s, iOS 10.1.1