"Long ago in a distant land, I, Dean, the shape-shifting master of darkness, installed an unspeakable amount of RAM into my desktop! But a foolish operating system, wielding a magic service, stepped forth to oppose me. Before the final bit was filled, I tore open a window to services.msc and disabled it in the future, where my evil is law. Now the fool seeks to revert to a restore point, and undo the future that is Dean!"
We thank Samurai Jack for the original quote, which I have assimilated like some kind of linguistic Borg.
Basically, a few months ago I bought an extra four gigabytes of RAM for my desktop, which runs Vista 64-bit Home Premium. I bought the RAM mostly for bragging rights and also because games like Bioshock and TF2 tend to take up at least 600 megabytes of RAM alone and I want to avoid swapping.
One of the things I noticed is that sometimes while playing games my music would stop playing, claiming that there is not enough free memory to play. Worse still, sometimes game sounds and videos wouldn't load, apparently for the same reason. I took a look into my task manager only to find that of my six gigabytes of RAM total, only about 10 megabytes were free to allocate to applications; the rest were allocated to something called "cache".
After a quick trip to the Internets I discovered, to my dismay, that Windows Vista is actually designed to eat RAM in this manner.
Vista has this background service called "Superfetch" which uses disc-usage statistics to load disc segments into RAM in order to speed up read times of commonly used files. That sounds like a good idea, except it's implemented in the worst possible way: it's not configurable.
It's on or off. If it's on, then it eats up 99% of RAM (rather aggressively) and doesn't give it back, meaning games and music and other applications that are wont to use lots of RAM don't get it, so videos don't load and sounds don't play. If it's off, then the majority of your RAM isn't used, so having lots of kind of a waste.
There is no middle ground. I can't say, "OK, Superfetch. You may use 66% of my RAM for your own evil deeds. I will use the remaining 33% for good." I also can't say, "Shit, Superfetch. If I'm running a game you'd better back the fuck off so it can run properly."
Either of those options would make Superfetch a very, very good thing. Microsoft obviously has limits built into Superfetch, since it doesn't impose on virtual RAM, but it didn't feel the need to allow users to adjust those limits. Microsoft also decided that users don't ever run games, image editors, bit torrent clients or any other applications that require large amounts of RAM, since the cache created by Superfetch never seems to recede, even when Superfetch is turned off.
I have noticed such a performance gain after turning Superfetch off that it makes me wonder what kind of insane software designer came up with the concept in the first place. I'm not entirely sure that I can think of any kind of user who would benefit from not having any free RAM, honestly, and I'd like to think I have a pretty good imagination. Maybe someone who only runs Microsoft Office to open and edit the same couple of files every day. The rest of us are screwed.
This is a pretty important lesson in software design: good ideas aren't good for everyone, so it's important to be able to turn good ideas off. Now, Microsoft has that one nailed with its service manager. The problem lies in the second pretty important lesson of the day: too much of a good thing isn't necessarily still a good thing. The idea of Superfetch, which is to sacrifice free RAM in exchange for faster common-file access, is a good one. It just utterly fails with its furious crusade against free RAM.
And, for those of you using Vista, here's a neat application that lets you change your logon screen's background. Once again this is something that could be built into the OS just fine, but was overlooked for whatever reason. Too bad there is no third-party application to rein in Superfetch...