# Fans Take Notice! M$Admits Windows Sloowwsss Dddooowwwwwnnnnnnnnn! For years on this blog, fans of that other OS have stoutly denied that Windows slows down with use. I have seen it with my own eyes. I worked in a school where identical machines were in two camps, XP SP1 updated for years and XP SP1 on machines in offices not connected to the web… without updates. The isolated machines were light and snappy. The old ones were dogs. I tried to find the best of them and updated to SP3 but they weren’t as snappy as the marooned machines… Now, M$ explains why XP slows down:
“Unfortunately, the Windows Update client components used an algorithm with exponential scaling when processing these lists. Each additional superseded patch would double the time taken to process the list. With the operating system now very old, those lists have grown long, sometimes to 40 or more items. On a new machine, that processing appeared to be almost instantaneous. It is now very slow.”

I guess we now know what the MIPS-eating application is, Windows Update! Of course, M$would prefer the solution that addicts/slaves/fans have used for many years, buying new hardware and paying M$ for new licences…

For the mathematically impaired, an exponential function is one in which the rate of change is proportional to the function, so that if the rate of increase is positive, the function and its rate of growth can “blow up” giving undesirable consequences like crashes, slowing down and various depletion of resources. A simple example is explanatory. Suppose you want to add up a series of numbers. A decent way to do it goes like this: $latex S=\sum t_i$. Of course, one could do better breaking it down to per-CPU units of work etc. but this simple task is “linear” in the cost. The work increases in direct proportion to the number of terms. However, if you were really evil, you could waste resources by making this simple task way too complex. e.g. $latex S=\sum\sum t_{i,j}$, greatly increasing the looping overhead. Recursion would be another wasteful operation but none of these comes close to being an exponential growth. To do that you have to be absolutely malicious and make the accumulation of each term involve the accumulation of all previous terms, perhaps combined with some expensive operations on the term, like $latex S_{n} = S_{n-1} + f(t_1,t_2,…,t_{n-1})t_n$. Imagine that function being databasery, consistency/dependency-checking, etc. Because the work of accumulating a term does more work in proportion to the work already done, the cost of adding terms can grow arbitrarily.

In the case of WU, if M$’s OS kept track of every change since the beginning and checked the whole chain for the addition of every link, the work would go like$latex 1, 2, 3, … n $and the sum would grow quadratically,$latex S = \frac {n(n+1)}{2} $. To get exponential growth they would have to try harder, like$latex 1, 3, 9, 27, … $, so$latex S = \frac{a(r^{n+1}-1)}{r-1} $. Maybe this is the final proof that the “registry” was a huge mistake. It takes so much work to keep it correctly. Anyway, this makes apt-get update;apt-get upgrade look positively wonderful. Essentially, using dependencies alone, GNU/Linux distros like Debian GNU/Linux can bring a system up to date in a simple step that requires just copying stuff. It doesn’t matter how many previous updates were made. The system keeps working normally. Of course, M$ can put a system back to the way it was at some point in time, as if that were even useful for routine operation… 😉 Perhaps now they will switch to APT.

## About Robert Pogson

I am a retired teacher in Canada. I taught in the subject areas where I have worked for almost forty years: maths, physics, chemistry and computers. I love hunting, fishing, picking berries and mushrooms, too.
This entry was posted in technology and tagged , , , . Bookmark the permalink.

### 14 Responses to Fans Take Notice! M$Admits Windows Sloowwsss Dddooowwwwwnnnnnnnnn! 1. eug says: “This is a rather interesting tutorial, because it highlights the innovative ways of handling internal operating systems lockdown mechanisms that prevent you from having the right to choose how to manage your installations.” http://www.dedoimedo.com/computers/windows-8-1-defender.html 2. oiaohm says: DrLoser I missed you post. The problem is not how often the OS gets updates. Its how often the OS processes its list to see if there are any updates to get. Windows XP does this a little more often than once per month. Its closer to once per day. Its that processing when the list gets long that is painful. Funny solved if Microsoft does service packs. Dr Loser you are right kinda about the 13 year old bit. Linux Distrubutions do regualar releases with the updates bundled in while they are supported. Lets take debian last stable May 4th, 2013 it was released as 7.0 wheesy. December 14th, 2013 its up to 7.3. So not even 12 months and its been service packed 3 times. Windows XP depending on how you count either has 3 service packs or 5 service packs. Ie the versions 2, 2b and 2c bring in the extra 2. DrLoser no matter how you like it the facts are over the shorter lifespan of a Linux distrobution on adverage more service pack roll in are done. squeeze the one before current debain stable is upto 7 roll ins of updates. That is only 3 years old. If XP had 7 rollins spread over the 13 year timeframe it would not be having its update trouble. You are paying money for Windows and Microsoft is not putting in the work. Yet us using debian pay nothing and more effort is put in to maintain it to avoid huge update overload. DrLoser you said the problem does not happen to a Linux distrobution. I will dispute this. My debian install on my home machine was installed in the year 2000 clean updated ever since. A few years back I had to delete a few legacy packages. Why they were making dependancy solving for updating extreamly slow very much a releated problem to what is happening to XP. The dependancy maths was being made too complex due to the package manager working around their existance. So it not that it cannot happen to Linux. If I had done a clean install the problem would have disappear with my Debian. Windows XP case no it would not have. Why would it not appeared in a clean install with Debian using a year 2000 install disc. The legacy package would have been skipped over as you did the distrobution upgrades. Dr Loser have you not heard Linux users say dependany hell before. This is when Linux package management gets sick. Boy can that eat cpu time like nothing else as the system tried to work out a solution when it happens. Yes this is why Linux roll in happen so often. Linux distrobutions require rollins of updates to avoid hell just as much as Windows does. Each rollin point creates a new skip to point with Linux Distrobutions. Basically meaning disregard all package information before this point. This is exactly what Windows service packs do. XP was release 2001 so its younger than my debian install. I am not saying my debian has treated me nice the complete time. The fact it has not treated me nice at times. The difference is the issues have been solvable without having to beg. DrLoser the Windows XP issue is miss management by Microsoft. Every time Microsoft extends XP life they should have released a service pack. If they had we would not have the problem today either. No matter how you look at it Microsoft is at fault here. OS X is also the year 2001. Difference OS X has 9 service packs so far. This is why its not in trouble with updates. Dr Loser is not just Linux not suffering from this problem. Everyone else has been able to manage there update processes correctly. Really am I meant to give Microsoft some special get out of jail card when Apple, Linux Distrobutions, IBM with AIX and Orcale with Solaris can all manage there update systems correctly to avoid this problem. Come on there is just a point when Microsoft should just put up there hand and Opps we have stuffed this up. This is the new process we are going to put in place so this never happens again. 3. dougman says: Bing-A-Ling doesn’t care about XP? Hmmmm…I know a few businesses that still use XP. Linux distros don’t last thirteen years? LOL…. for a so-called Doctor you fail in your knowledge of computers. Debian and Slackware have been around for 20+ years you limey. 4. ssorbom wrote, about updates, “what does Windows do diferently?” There are several big differences. Windows bundles several updates into one package tying stuff together unnaturally so it’s not a simple dependence relationship. You can’t install this package unless the system is in a certain state with regards to a number of packages. That is way too complex. M$ does that just because it can and has for a long time produced “spaghetti code” where everything is tied to everything else in a forest of complexity. GNU/Linux keeps it simple. Stuff depends on what is necessary, not what salesmen want, what a bunch of M$’s “partners” want, and backwards compatibility with all the mistakes M$ has ever made. In mathematics, one uses orthogonal vectors so that anything can be represented by a single vector representing linear coefficients multiplying the base vectors into a sum. In GNU/Linux, version x.y.z of package A is completely independent of versions a.b.c of another package. They don’t overlap in any way so building a system using them is just a matter of copying with the knowledge that both parts will work. M$can’t manage that. They tie the browser in with image manipulation, advertising, multimedia, etc. That’s why they have so many bugs and have such a hard time fixing the bugs. Don’t believe it? Look at this trace of execution of a piece of their software delivering an image. 5. oiaohm says: ssorbom APT does not do the lookup what is the version installed directly it calls the package manager. RPM, DPKG …. all have a proper database to record what is currently installed so the look up is fast. Dependency processing under RPM DPKG can take a while. But since Linux distributions are not one huge blob the damage is limited. This algorithm that is going south in Windows Update is checking if dependencies to the next update it going to install are installed it has to search back through every update installed to find if the dependencies to this are installed. No RPM or DPKG where it can say I am updating this module is it current. Reduced search depth. ssorbom windows update is in fact the same program and service in XP, Vista, 7, 8 and 8.1. So what ever fault is in one is in them all. Anyone who has run wsusoffline gets to notice this. windows update is truly binary identical between XP, Vista, 7, 8 and 8.1. There are in fact a lot of updates for XP, Vista, 7, 8 and 8.1 that are identical. There is a XML file that lists all updates. ssorbom the reality is RPM, DPKG…. all have fancy database algorithm to track changes. Yes that database can break and you can have to rebuilt it before you can apply updates. Windows has been depending on old school brute force algorithm that would be fine if Microsoft did release a service pack every year. Its not that Windows Update is broken as such. Microsoft has been operating it incorrectly. Why have Microsoft been operating it incorrectly. Simple we had someone in bureaucracy do something stupid or intentional to force end of life. Each time Microsoft release a Service Pack for a OS it extends the end of life. from Microsofts Service Pack Lifecycle Support Policy Service Pack Support Policy When a new service pack is released, Microsoft will provide either 12 or 24 months of support for the previous service pack, varying according to the product family (for example, Windows, Office, Servers, or Developer tools) Problem here for windows update to operate correctly those service packs have to come. So end of life should not have been connected to service pack. XP is in extended support. This happens after End of Life happens for 5 years+ with only security updates. So its taken 5 years+ to collect a 40 deep tree. ssorbom yes the fault in all Versions of Windows have same problem. None of the prior Windows OS’s had been in extended support for so long that the problem become clearly displayed. Yes its a really sad case that nothing is broken. Windows Update is being operated incorrectly by Microsoft. To fix require Microsoft to rewrite policy or fix program. Rewrite policy would be many time simpler. Even Linux Distrobutions go forwards versions and strip out legacy. If you don’t your update processing even inside linux start taking huge amounts time. There are limited ways to run update systems without causing trouble. 6. ssorbom says: I was referring to “under the hood”. Like version comarisons. I’m having trouble understanding why Windows would need a fancy algorithm to track version changes, which was why I asked about APT. So APT only looks at the difference between the current version and the installed version? That I kind of figured (just making sure). But what does Windows do diferently? 7. DrLoser says: OK, let’s get one thing straight. Using an exponential algorithm is always bad. M$ fails here.

As a matter of fact, using an O(n^2) algorithm to traverse a list, which as far as I can see is what this is doing, is pretty bad. Not dreadful for n := 40, because we can all square forty and get a reasonable number.

But this is awful, awful, awful, and it would never ever happen with a Linux Distro. Partly because Linux Distros do not, in the general case, last thirteen years before retirement.

Hey, guys! This is XP we’re talking about! You know, that sad old limping OS version that has been creamed by (Robert’s favourite) Moore’s Law!

But let’s just assume that you are the sort of unenlightened XP user who has yet to encounter the Glory that is the Linux Desktop. Let’s just assume that this is a real problem.

Let’s think.

It isn’t, is it? It only applies to updates. Once a month. Can you count how many people are going to care?

I do not have Robert’s expertise in logarithmic graphs, but I believe I can count how many people are going to care.

Precisely nobody. Apart from a small number of Linux enthusiasts who don’t use XP in the first place.

It’s a “man bites dog” story, isn’t it?

8. ssorbom wrote, “how does APT work by comparison?”

APT is stateful and mostly about the current state of individual packages and their dependencies. ie. You can update a particular application and all its libraries with a single command. You can update the OS and all the applications in the repositories with a single command. You can upgrade to the next release with a single command. It’s absolutely wonderful. APT doesn’t have to worry about rolling back to any particular date. It’s all about versions.

9. ssorbom says:

Out of curiosity, how does APT work by comparison?

This update algorithm is not just in XP its also in Vista, 7, 8 and 8.1. So it for sure needs to be fixed.

oiaohm, can you cite this? All I have read in regard to 7 and 8 is speculation. I have relatives that would be very interested in this.

10. dougman says:

The more Windows is used is SLOWS down, the more Linux is used it SPEEDS up.

M$developer admits Linux is faster than Windows http://www.zdnet.com/anonymous-msft-developer-admits-linux-is-faster-than-windows-7000015236/ I Contribute to the Windows Kernel. We Are Slower Than Other Operating Systems. Here Is Why. http://blog.zorinaq.com/?e=74 11. Mats Hagglund says: During last 18 months i have heard more and more complaining about Windows 7 becoming terrible slow. So also Windows 7 is just another Windows. Perhaps works well first 1-2 years but later – lagging. 12. dougman says: Please provide link for affecting newer releases and no, it does not need to be fixed. Let Win-Doh’s users suffer Win-Doh’s problems. 13. dougman says: Just read that the other day. How mighty kind of M$ to introduce a bug to force everyone off XP.

Its seriously genius!

14. oiaohm says:

This update algorithm is not just in XP its also in Vista, 7, 8 and 8.1. So it for sure needs to be fixed.

Why did this not hit sooner. Microsoft releasing Service packs. The update calculation resets every time you get a service pack.