Shortly after publishing A Messy Transition (Part 1) we received numerous requests for similar user address space usage testing under Windows XP, as we had previously done all of our testing on our standard Windows Vista setup. Although we were not expecting a great difference - certainly Vista will use more resources than XP because it's a newer and heavier operating system - we decided to follow these requests anyhow. However what we found completely blew our expectations.

And with that said we'll immediately dive in to the results of our findings. We'll be picking up from where we left off, so please read part 1 if you haven't already.

Software Test Bed
Processor AMD Athlon 64 4600+
(2x2.4GHz/512KB Cache, S939)
RAM OCZ EL Platinum DDR-400 (4x512MB)
Motherboard ASUS A8N-SLI Premium (nForce 4 SLI)
System Platform Drivers NV 15.00
Hard Drive Maxtor MaXLine Pro 500GB SATA
Video Cards

1 x GeForce 8800GTX
1 x GeForce 7800GTX(256MB)
1 x Radeon X1900XTX(512MB)

Video Drivers NV ForceWare 163.11(Vista)
NV ForceWare 162.18(XP)
ATI Catalyst 7.6
Power Supply OCZ GameXStream 700W
Desktop Resolution 1600x1200
Operating System Windows Vista Ultimate 32-Bit
Windows XP Professional SP2
.

The principles of address space allocation and usage are virtually the same between Vista and XP, so as with our Vista tests we first attempted to crash Supreme Commander against a modified 2.6GB of user address space. Because this needed to be repeatable we have switched to using replays instead of a live game, but the goal remains the same one of monitoring memory usage and looking for Supreme Commander to crash. Or surprisingly, to not crash; we were unable to make Supreme Commander crash and not for a lack of trying.

Supreme Commander Address Space Usage
(GeForce 8800GTX, 768MB)
Game Start Replay Start Replay End
Windows Vista 562MB 1.21GB 1.95GB
Windows XP 116MB 930MB 1.44GB
.

The above is a chart of the user address space usage of Supreme Commander when the application was launched, at the start of the replay, and 15 minutes in to that replay. Although using a replay reduced overall address space usage (which is why not even Vista is above 2GB at 15 minutes in), there is a massive difference in usage between XP and Vista at all points. At the start of the replay there's already a 300MB difference in address space usage, and by 15 minutes in when Supreme Commander is heavily loaded down that difference has ballooned to 500MB, a full 25% of the total address space the application gets under normal circumstances.

Appropriately, the difference in address space usage was the reason that Supreme Commander would not crash under XP like it would under Vista. Address space usage peaked at 2.1GB, which while in excess of the default 2GB barrier is below the 2.6GB mark where it crashed under Vista. Even a slight reduction in address space usage here would have kept the game from hitting the 2GB barrier at all, avoiding the whole can of worms that is modifying the user address space allocations.

Supreme Commander Address Space Usage
(Radeon X1900XTX, 512MB)
Game Start Replay Start Replay End
Windows Vista 230MB 1.15GB 1.87GB
Windows XP 124MB 939MB 1.44GB
.

As we originally had a suspicion that this could be related to NVIDIA's drivers, we swapped out our 8800GTX for a 512MB Radeon X1900XTX and ran the Supreme Commander tests under both Vista and XP. The results were virtually identical with Supreme Commander consuming more address space under Vista than XP. Curiously however the overall amount of address space used by Vista is down slightly (by about 120MB) compared to the 8800GTX.

Supreme Commander Address Space Usage
(GeForce 7800GTX, 256MB)
Game Start Replay Start Replay End
Windows Vista 240MB 1.10GB 1.75GB
Windows XP 119MB 928MB 1.43GB
.

In trying to explain the difference in address space usage under Vista, we finally pulled out a 256MB GeForce 7800GTX. What we found was that the gap between Vista and XP remains, but it is smaller yet again as Vista's address space usage shrunk another 120MB compared to the 512MB Radeon card. With the above numbers we can definitely say there appears to be some sort of relationship between address space usage and video memory under Supreme Commander. But this also raises the question: is this difference in usage of our increasingly critical address space a function of Windows, or something specifically related to Supreme Commander?

A Second Opinion
POST A COMMENT

57 Comments

View All Comments

  • CZroe - Wednesday, August 01, 2007 - link

    I believe that SLI will double the address ranges reserved for video memory and I believe that it would make testing the limit with these games on Windows XP possible.

    So, will SLI double the reserved address ranges? Considering that the board tested is an SLI board, I would recommend that it be tested in an SLI configuration with two 640MB+ cards.
    Reply
  • guidryp - Wednesday, July 25, 2007 - link

    It is about address space not physical memory installed. Some people don't seem to get that how much memory you have just doesn't matter. We have all been using Virtual memory for ever. As far as applications are concerned you don't run out of memory till you exhaust the address space. Vista seems to be chewing up a lot of that address space.

    Vista:
    256MB - 1.7G
    512MB - 1.9G
    768MB - 2.1G Ooops!

    XP:
    256MB - 1.3G
    512MB - 1.3G
    768MB - 1.3G

    I think Anand has a good answer on the probable what/why here. Microsoft mapped the video memory into the user address space as a security measure. Security as in DRM. This prevents a second application from peaking into the video ram while you play a BluRay disk. So for Microsoft. It is a good tradeoff to lose a big chunk of address space, to protect you from pirating, your content on your machine. We should thank them I guess. Otherwise I might accidentally do a frame capture while playing a BluRay disk. That would be just awful. Much better to be protected against that and have few games crash due to resource exhaustion. Thank you Microsoft.

    As a programmer, I will tell you that behaving gracefully when you are out of memory is a challenge. When new fails, you are likely hosed. You probably can't allocate memory to print out a message. You may as well exit because when you are out of memory it is game over. I see mission critical (five nines) code that doesn't even check the return code on new. I wouldn't hold gamer programmers to a higher standard.

    Games that don't blow the memory on XP, but do on Vista is Microsoft problem. When CoH takes 1.3GB on XP and 2.1GB on Vista. This is stark loss of address range that Microsoft should never have embarked on for backward compatibility reasons.

    Though supreme commander does deserve criticism because it can blow the memory on just about any setup. They should have tested worse case scenario and put blocks in on the number of AI/Units to prevent the memory wall from being breached.
    Reply
  • zagood - Thursday, July 26, 2007 - link

    ugh...typed a novel as a response and then got a posting error. Summation:

    I see your point and understand the logic. I was just saying that the difference between the processing power of those cards are about the same ratio as both the onboard memory difference and the allocation in Vista. For quick reference, from TH VGA charts:

    BF2142 1024x768 no AA (FPS)
    7800GTX 256mb: 56.8
    X1900XTX 512mb: 75.4
    8800GTS 640mb: 94.6

    I just find it interesting. One test with the 8800GTS 320mb could prove me wrong, that's all I'm asking.

    -z
    Reply
  • zagood - Monday, July 23, 2007 - link

    "The amount of address space used with Vista seems to be related to the amount of video memory on our video card..."

    Would like to see a test with 8800GTS 320mb vs. 8800GTS 640mb to confirm. Looking at the cards used, I wouldn't automatically chalk up the differences to onboard video memory, but instead to the processing power of each card.

    -z
    Reply
  • Kougar - Saturday, July 21, 2007 - link

    Very interesting finds here, thanks for the nice fact finding article. :) Nice to see some real, hard facts against Vista for a change other than the random perpetuated junk.

    Just a note it is still easy to crash SupCom however. As I said in the commentary for the 1st article it takes the X-large maps, 7 Advanced AI + 1 player, and 38-65 minutes of gameplay depending on econ ability of the particular map and use of the Resources x2 mod. If enough units were destroyed or an AI was killed off prematurely the game would never even crash. Using a 8800GTS 320mb card.
    Reply
  • titan7 - Thursday, July 19, 2007 - link

    Physical RAM is how much RAM you have. Pretty simple.

    Virtual Address Space is something the OS provides. Every 32 application thinks it has a full two (or three or four, whatever your OS configuration) gigabytes of RAM all to itself. It doesn't matter if you have an old PC with four megabytes or a new one with four gigabytes. It's just virtual memory, not real memory, and you've got two gigabytes of it.

    You can run dozens of applications all thinking they have two gigabytes of memory on a system with only a few megabytes. Through virtualization of the RAM the OS will just page out bits to the swap file on demand.
    Reply
  • nullpointerus - Friday, July 20, 2007 - link

    This stuff was covered in Part 1.

    Or did you intend to respond to someone in the comments section?
    Reply
  • spazmedia - Thursday, July 19, 2007 - link

    Does anandtech make reference in their motherboard reviews to memory hoisting or memory hole remapping? Just read somewhere else that even with a 64bit operating system, you can lose 1GB or more of memory depending as you say on your video card config, in the 3-4GB address space. Thus with a 32bit operating system it is pointless to have more then 3 gigs of ram. Memory hole remapping moves this address space elsewhere, presumably where it does not affect the amount of ram available for applications the OS. (Quite a mess actually...) Reply
  • BikeDude - Sunday, July 29, 2007 - link

    Yeah, the memory hole feature moves the "offending" DIMM above the 4GB border, thus you end up seeing this memory only in Windows Server or 64-bit Windows. (and if you do decide to use 32-bit Windows Server, you end up with 3pointsomething GB anyway, because nVidia has not supported PAE since Forceware 79.11) Reply
  • titan7 - Thursday, July 19, 2007 - link

    If it really is a WDDM problem couldn't you install some old Windows XP drivers instead of speculating? Or does vista 100% require wddm drivers? Reply

Log in

Don't have an account? Sign up now