Why do Windows machines get sluggish over time but Macs don't seem to?
March 1, 2009 9:14 PM

What is the specific technical reason Windows machines get gradually more sluggish over time (and without a reformat and reinstall) whereas Macs don't seem to?

I don't mean to start some kind of Windows-versus-Mac debate or anything, but this is a question that's burned in my mind for some time. I use both Windows XP (on a Dell Inspiron 700m laptop) and Mac OS X (on a dual-core Mac Mini) and the Windows machine slowly becomes unusably sluggish over the course of every 1.5 years or so, whereas the Mac appears to be performing just as it did on day one. What's the actual, objective difference in the operating system architecture that accounts for this?
posted by colinmarshall to Computers & Internet (16 answers total) 21 users marked this as a favorite
I suspect one reason is that Windows tends to let a lot of programs act on the registry and install core-level services, whereas Macs usually don't.

Not that I'm an expert, though...
posted by fearthehat at 9:29 PM on March 1, 2009


Macs most certainly get slower over time.
posted by knowles at 9:29 PM on March 1, 2009


Applications and services are installed and added to start when windows does, over time this creates dozens of additional running processes that waste clock cycles and memory.

A new WinXP system has ~20 processes, one that has been used for a while by someone not maintaining their system will easily have >50. Each of those processes is going to take up resources, making the system slow.
posted by Sonic_Molson at 9:34 PM on March 1, 2009


Fearthehat and sonic are both pretty much right. The registry gets larger and larger as time goes on, and even when you uninstall a product, it leaves its ugly tentacles in there mucking your stuff up. And of course, as you add more and more applications, you'll inevitably have more and more processes running in the background (especially if you don't exactly know what you're doing). Couple that all with spyware, disk fragmentation, and indexing of a growing dataset, it's a recipe for disaster.

All of this stuff is controllable with registry cleaners and defragmentation and spyware/adware removal tools, etc, but really you're can't stop Windows rot in the long run... you can only hope to contain it.
posted by fusinski at 9:42 PM on March 1, 2009


I have seen Macs slow down gradually over time too, as well as gradually become prone to crashing. But I have more experience with Windows and Linux than Macs; it may well be that this is less common among Macs for some architectural or other reason but I couldn't confirm that.

In the case of Windows it generally has to do with installing software. Many pieces of software install some components that run at the time the operating system boots up, or components that run constantly in the "background" the entire time the computer is running, or which intervene in some basic functionality of the OS such as adding an option that is called every time you right-click / call up a context menu or which add a special network layer or driver. And for various technical and practical reasons it's those sorts of components that most frequently are not successfully removed by uninstallers. (The most common reason being irresponsible executives at software companies who don't make room in the schedule or budget for the software developers to write good uninstallers until a major customer calls and threatens to cancel an order.)

So over time these little resource-draining items build up and add to an overall drag on the system. The number of files on the hard drive usually increases as well so any process that involves scanning the hard drive takes longer too. It's kind of like barnacles building up on the hull of a marine vessel.

Ever since I've started using virtual machine software like Xen and VMWare and Virtual PC I try to always install any software I just want to experiment or play around with as well as any software I use infrequently (like Microsoft Office in my case) in a virtual machine instead of in the host OS. Doing so can prevent that sort of performance degradation and also can help to keep viruses and trojans contained if you have any worries about those.

Funny anecdote - in the course of my work I travel around and work one-on-one with many software developers. Software developers especially tend to end up installing tools or test software et cetera that weighs down every part of the system, but they often can get their bosses to keep buying them more and more over-muscled computers so that they often don't notice the performance degradation. More than once I've had someone install virtual machine software and they've been stunned to find that the guest OS inside the virtual machine (which is usually a fresh install of whatever OS with a minimal number of apps) runs significantly faster than the host OS - even, for example, when the guest is something like a Windows server OS and the host is a desktop OS.
posted by XMLicious at 9:59 PM on March 1, 2009


I've had both Windows and Macs. I've been a Mac fan since 2004 because I can still count on one hand how many times a Mac has crashed. I have never seen anything similar to Windows' "blue screen of death," though, nor has one program caused another to stop functioning due to shared memory problems as happens in Windows. Software applications by third parties sometimes have problems, though- like Firefox will become slower and slower over time, I've noticed. Otherwise, the most common problem I have on a Mac is when I use a processor-hogging graphics program like "Imaginator" (by Stone) .
posted by Piscean at 10:29 PM on March 1, 2009


On a related note, some macs need a reboot cycle if they become low in physical memory, and the virtual memory file begins to grow to fill up remaining disk space. Once the swap file as it's called is large, and there's not much fresh disk space left, this can leave a mac a bit sluggish. Maybe this is what people mean by macs getting sluggish over time. The preferred solution most desirable first would be:

1. Get more memory.
2. Arrange to have around 10GB of disk space free.
3. Reboot once a week or so.
posted by singingfish at 2:28 AM on March 2, 2009


Simpler: Windows disks get horribly fragmented which leads to disk thrashing, and a slower system. Use a decent defragger - JKdefrag is the best I've found. Dont use the Windows one, it doesnt actually do very much. JKdefrag can have a dramatic effect on overall perf.

(anecdote, one server here at work wasnt touched for 5 years. A proprietary flat file database with 2M+ entries was found to be about 99% fragmented, and approx 9.2 fragments per file. We swapped the disks rather than defrag and performance went through the roof.

I dont believe fragmentation occurs on Mac OS disks - I cant say whether that applies to an NTFS disk managed by Mac OS though.
posted by daveyt at 5:01 AM on March 2, 2009


I'm wondering, do Windows users tend to install more apps on their machines, given the huge amount of available freeware and shareware? Are there as many apps for Macs? I use Windows, and I've got a shit-ton of goofy little programs I've installed over time.
posted by orme at 5:18 AM on March 2, 2009


Traditionally, the achilles heel for Macs has been diminishing HD space. Once you've filled, say, 2/3 to 3/4 of your HD, most Macs will begin to noticeably slow down.
posted by Thorzdad at 6:53 AM on March 2, 2009


It's the registry. Fragmentation is not a big problem with any modern filesystem, NTFS included (although it was a problem for FAT32 filesystems). See, if you didn't know, Windows stores all preferences and settings for the various parts of the operating system itself and all installed programs in a single central database called the registry. When you uninstall a program, it almost never properly removes its cruft from the registry. On the other hand, UNIX-based operating systems like OSX and Linux generally use individual text files for each piece of software, on Linux these are dotfiles in the user's home directory and global settings in /etc, and on OSX they are the plist files in /Library/Preferences and /Users/yourname/Library/Preferences. So, as the registry constantly grows, everything gets slower, whereas the worst that happens on OSX or Linux is a stray config file being left behind by a now-removed piece of software, which has no effect other than wasting a few bytes of disk space.

The registry was a really dumb idea, but Windows is stuck with it as removing it would break all software written before the day they remove it. Of course, spyware/malware can slow down a system as well, but even a totally spyware-free machine will still rot. The only way to avoid it is to install everything you think you'll need, configure all of it, and then install one of the various software packages used on public computers that returns everything to a saved state upon reboot. Obviously this would be inconvenient on a privately used computer, so the only option left is to put up with it.
posted by DecemberBoy at 7:35 AM on March 2, 2009


In Windows:

Start -> Run -> type "msconfig" and hit enter -> go to the "startup" tab.

This is a list of the programs that start up when you launch Windows. Uncheck anything you don't want starting up. This ought to speed up your bootup time.

Be careful when you do this, though, stuff like your laptop touchpad and laptop speakers are frequently tied to this, so don't remove something if you haven't verified what it is first. Typing its name into Google will usually give you a few pages that explain what what each program does.

Luckily this is non-destructive and after a reboot you can just relaunch msconfig & re-check programs that you do need.

daveyt: OSX has a sort of continual defraging process that goes on.
posted by MesoFilter at 7:41 AM on March 2, 2009


Macs get crazy fragmented too. The continual defrag thing must be some sort of myth or I have to be some crazy power user or something, because every time I run an actual defrag program my hard drive is a mess.
posted by knowles at 10:14 AM on March 2, 2009


MesoFilter - there is a much easier way to do this (and you won't have programs like Quicktime creeping back into your startup): CCleaner. It has a selective-startup function as well as cleans up your temp files and other junk. I think I learned about it on MeFi actually!
posted by radioamy at 10:53 AM on March 2, 2009


DecemberBoy: The registry was a really dumb idea,

I'll disagree with this in that having a centralized and standardized facility for configuration management, with its own engineering team separate from each application's engineering team to work on performance and availability, etc., is actually a pretty good idea. There are projects to implement a similar thing for Linux / UNIX like libelektra.

What MS did a faceplant on is the implementation - particularly in that the implementation of the registry is as a Microsoft JET database. So it's essentially an MS Office Access application embedded into the OS. (As are a number of other Windows subsystems such as the network DNS database.)

I heard rumors that there were originally plans to replace it with Microsoft SQL Server for Windows Vista. That would have been interesting but I believe it was dropped along with various other good ideas like WinFS due to scheduling shortfalls and marketing timelines.

Microsoft has lots of smart people, many of them the smartest from all over the world, under the lash up there in Redmond and elsewhere. When their plans work out successfully it can be pretty spectacular. But unfortunately the more frequent outcome is that their plans get kneecapped by one of the business operations that's working to ensure that MS stays industry-dominant and meets deadlines. Mice and men &c.
posted by XMLicious at 1:05 AM on March 3, 2009


Here is a bit of an explanation of why macs tend to have fewer problems with fragmentation than older computers used to (although much of it applies to any recent computer).
posted by vegetableagony at 11:44 AM on March 4, 2009


« Older Sad Pretty Music   |   seeking check-out cards for a communal book... Newer »
This thread is closed to new comments.