Behold the turtle

jb's Blog

"behold the turtle, he only makes progress when he sticks his neck out"
Memory and a modern PC 31 May 2006 06:00

Update: Nic posted about Leonie's impressions of Vista and in particularly memory usage. This is definitely the response I think I have heard from everyone who sees my task manager snapshot or loads it on to their PC. Clearly there needs to be a good focus on seeing this number drop at the baseline as well as reinforcing what value the memory is ultimately providing :-)

-----

One of the things which has been drawing a lot of "noise" around Vista has been the way it happily uses memory. It reeks a bit of Nathan's 1st Law of Software (software is a gas and will expand to fill the container its in)..

does this scare you? :-)

A couple of the hungry processes under Vista are..

SearchIndexer.exe: This is the service host for the Windows Search service. This is what powers the new search capabilties within Windows Vista. It means that from your start menu you can instantly search through all your programs, documents, pictures and even email. This is identical to the MSN Desktop Search but integrated. So my guess would be that most of the memory simple is for holding the in memory index of my files - I currently have ~20000 things indexed. Current Size: 150MB

DWM.exe: Desktop Window Manager - this is what helps manage the compositing of your desktop in conjunction with your video card and video ram. It seems to size it self relative to the amount of active windows and is only on when using the new Windows Aero experience. Current Size: 130MB (with 17 apps open) - 60MB if I close everything except the web browser

Explorer.exe: With the new previews and filters enabled this consumes a lot more memory. Experience comes at a price :-) But Explorer has always puzzled me how it does what it does... Current Size: 70MB

So its clear that we are going to need a lot more memory to run Vista. Currently Im floating between 700MB and 1GB in active memory being used (see above). At first glance this seems like a huge increase! So why is this the case, and is this too excessive?

Lets start by looking at the certification program for Windows Vista that OEMs use to put the nice looking stickers on your PC or laptop :-) For Vista there are two grades of certification to differentiate a standard PC which can run Windows Vista happily but without the desktop compositing which gives us the eye candy, and one which can run at full noise. These are called "Vista Capable" and "Vista Premium Ready".

nice new sticker

A Windows Vista Capable PC includes at least:

  • A modern processor (at least 800MHz1).
  • 512 MB of system memory.
  • A graphics processor that is DirectX 9 capable.

A Windows Vista Premium Ready PC includes at least:

  • 1 GHz 32-bit (x86) or 64-bit (x64) processor1.
  • 1 GB of system memory.
  • A graphics processor that runs Windows Aero2.
  • 128 MB of graphics memory.
  • 40 GB of hard drive capacity with 15 GB free space.
  • DVD-ROM Drive3.
  • Audio output capability.
  • Internet access capability.

Ok, so most of us want to be Vista Premium Ready, so this means that the expectation is to have 1GB of main memory. Wow thats quite a lot, so what added value are we actually getting for this ram usage?

If you look at the 3 big consumers, one of them is a core part of the shell, the other 2 are services which can be switched off. For a non Vista Premium Ready PC, DWM will be off as Aero will be disabled. SearchIndexer would appear to be relative to the search index. What *I* am getting for my 350MB investment is access to quickly search my files, to have a slick user experience and to just generally have better productivity. Productivity is good (it saves me time and money), user experience is good, but the benefits of search for me given the cost and the excess memory footprint of Explorer are of low value to me. I feel that we are doing better than break even given the benefits Im taking away here - YMMV of course..

So the next thing to consider is that when you buy a new PC today, the standard is for 512MB/1GB of ram with plenty of people pushing 2GB. Ram is cheap now, and if we have all this ram in our PC, why shouldnt we be using it? On my laptop which has 1.5GB of ram I barely scraped past 1GB under Windows XP, and that would typically be with a massive amount of applications open - too many in fact - I got lazy and didnt close things :-) The only time I *really* needed the memory is for running Virtual PC's or specific games. Of course, thats why I decided on 1.5GB when purchasing :-) When you think about it for a second, buying a PC with 2GB of ram is fairly normal today if you are really beefing it up, so this isnt actually a stretch for people who need the memory because you are going to use it.

So where have we come to? Well much like SQL Server 2005 we dont just have an operating system any more. We have a platform which has a lot of complex moving parts running on to of it which come out of the box. Some of these cost us reasonably heavily in the RAM stakes - for most average consumers this is not going to be an issue - they will buy a PC which is Vista capable, it will run Vista - they will have plenty of left of memory to run a web browser, Office or playing most games. The increase of RAM usage to provide the services such as search and UX is what helps driven the benefits Im realising, but also can lead to a negative if you dont feel the investments in those things work for you. The good news for minimalists is you can turn off the search service and user experience, in fact in a quick test to lower the weight of the system by systematically disabling services I managed to get the platform footprint back down to ~200MB - its kind of sad moving back from glass and the speed you get with compositing though.

I think the challenge leading to RTM is really to drive the memory usage down - I have no doubt that it will go down - we are in the beta stage, applications are either not optimized or contain a lot of extra baggage. Visual Studio 2005 was a prime example, even up to the very late stages in the dev cycle we would see memory usages of ~500MB as very common for simple solutions, in release the footprint for the same solutions is back at around 70MB. So the interesting thing to watch will be by how much it decreases :-)



comments (2)

history


2006 (47)
2007 (79)
January 2008 (5)
February 2008 (17)
March 2008 (7)
April 2008 (4)
May 2008 (1)
June 2008 (6)
August 2008 (1)

blogs i read


JDs Weblog
Andrews Blog
Chris Auld
Josh Robb
Ivan Porto Carrero
Rod Drury
Nic Wise
Alex James
Darryl Burling (MS)
Nigel Parker (MS)
Sean McBreen (MS)

links


Mindscape
Intergen
Microsoft Regional Director Microsoft MVP - SQL Server

RSS Feed rss feed