For several months, I've seen complaints about slow Windows 7 updates. This month, the gripes have reached a crescendo, and it's time for Microsoft to fix it.
Back in March, I created two squeaky-clean installations of Windows 7, starting with a Microsoft-created copy of Windows 7 Service Pack 1. In one, I relied on Automatic Update to pull down and install all of the "checked" updates, except for the "Upgrade to Windows 10 Pro, version 1511, 10586" optional update. On the other, I picked specific updates and applied them manually.
In both cases, it took overnight to complete the task. On several occasions, I simply gave up in disgust and moved to another task.
Late last month, Ed Bott on ZDNet reported that it took him more than 24 hours to similarly install Win7 Pro.
In the past two days, AskWoody.com has been flooded with even more complaints. The complainants aren't engaged in a Marquis de Sade re-enactment of building a new Win7 from scratch. They're people who keep their machines up to date and simply want to see the latest Win7 patches.
At one point, it appeared as if installing the latest Windows Update Client -- version 7.6.7601.19161, from KB 3138612 -- would help, but for many people, that doesn't work. The latest kernel patch, KB 3139852, looked like a savior at one point (for reasons unknown), but it fizzled out, too. Instead, would-be updaters are floundering for an hour, two hours, six hours, trying to get a list of available Windows updates.
Poster GK has a pertinent observation:
If I were conspiracy minded, I'd think that MS is deliberately making the Win7/8 update process harder so the Win10 AutoUpdate process looks better. So far this morning I have nine Win7Ent machines, in different geographical locations, that have been stuck on "Checking for updates..." for 45 minutes as of this writing. Over the past few months the "Checking..." process has taken longer and longer, but it's never before been as slow as this. Has anyone else complained?
I'm just now getting some update dialog boxes, after well more than an hour. After installing, a high percentage have at least one failing update, although it's a different update in each case. What this means is that I have to reconnect to the computer, relog in, and install the failed update. Grrrr.
Frankly, I don't think Microsoft is intentionally slowing down Windows 7 updates. But I think it's sufficiently focused on Win10 development that problems with Win7 fade into the background, not rising above ambient noise level. And paying customers get it in the jaw.
Poster Bob(maybe)OrNot says:
They could cut ~42% of excess CPU usage by not doing what their documentation says not to do (calling QueryPerformanceFrequency more than once). One could hope this would cut run time by that much.
Their supersedence function is un-optimized, now that we have more supersedence than in the past (see KB3035583 & KB2952664, no SP2) this poorly optimized function is causing havoc.
Called recursively, 20+ layers deep:
wuaueng.dll!CSusMap::_tagMapEntry::_tagMapEntry which finaly calls
"QueryPerformanceFrequency retrieves the frequency of the performance counter. The frequency of the performance counter is fixed at system boot and is consistent across all processors. Therefore, the frequency need only be queried upon application initialization, and the result can be cached." – Microsoft
They called this function about 3,270,000 times during the 2 hour check for updates. Microsoft says "Only call this once, it won't change between boots", Microsoft calls it 3.27 MILLION times. Windows update is slow.
I can only imagine what other possible improvements to optimization that aren't this blatantly obvious could do for the update check speed.
Three years ago, we had a similar problem with Windows XP updates redlining the SVCHOST program. It took a while, but Microsoft finally fixed it, though it was pushing the newly released Windows 8.1 at the time.
Back then, Microsoft said it would trim the supersedence tree: "We're working to expire these exceptionally old, dated, unnecessary updates in the chain. The expirations for these didn't happen as planned."
Looks like it's time to trim the Win7 tree and back off those recursive calls.
Alternatively, Microsoft could continue taking an hour or two out of the lives of the remaining billion-or-so Windows 7 users, every month.