mrjaime1999

Untitled

Jun 30th, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1.  
  2. They could cut ~42% of excess CPU usage by not doing what their documentation says not to do (calling QueryPerformanceFrequency
  3. more than once). One could hope this would cut run time by that much.
  4.  
  5. Their supersedence function is un-optimized, now that we have more supersedence than in the past (see KB3035583 & KB2952664, no SP2)
  6. this poorly optimized function is causing havoc.
  7.  
  8. Called recursively, 20+ layers deep:
  9.  
  10. wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded calls
  11.  
  12. wuaueng.dll!CUpdateDetectInfoList::FindNewestUpdate calls
  13.  
  14. wuaueng.dll!CSusMap::_tagMapEntry::_tagMapEntry which finaly calls
  15.  
  16. ntdll.dll!RtlQueryPerformanceFrequency
  17.  
  18. "QueryPerformanceFrequency retrieves the frequency of the performance counter. The frequency of the performance counter is fixed at
  19. system boot and is consistent across all processors. Therefore, the frequency need only be queried upon application initialization,
  20. and the result can be cached." – Microsoft
  21.  
  22. They called this function about 3,270,000 times during the 2 hour check for updates. Microsoft says "Only call this once,
  23. it won't change between boots", Microsoft calls it 3.27 MILLION times. Windows update is slow.
  24.  
  25. I can only imagine what other possible improvements to optimization that aren't this blatantly
  26. obvious could do for the update check speed.
Advertisement
Add Comment
Please, Sign In to add comment