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
Comments Locked

57 Comments

View All Comments

  • jay401 - Thursday, July 19, 2007 - link

    It's good to have another link of solid proof for all those jokers out there who want to claim Vista is soooo much better for gaming. wtf ever.

    But back to the topic of SupCom: SupCom shouldn't crash without the hack. It shouldn't need a hack. It should work properly. Hopefully they rectify this in November, but having to pay for a second game (Forged Alliance) to get the first one to work on the epic scale they billed it as having, is rubbish.
  • titan7 - Thursday, July 19, 2007 - link

    It works on the Epic scale if you play in XP though.
  • jay401 - Friday, July 20, 2007 - link

    only if you implement the hack fix and even then, no guarantees.
  • thorphin - Thursday, July 19, 2007 - link

    2 GB barrier. This is something us in the Windows systems programming world have had to deal with for sometime. The real solution as you know is to move to a 64-bit OS but there is one trick Microsoft has left in the 32-bit world.

    We can use the /3GB switch in the boot.ini on most Windows versions prior to Vista. On Vista you use the “IncreaseUserVA element in BCDEdit” in place of the /3GB switch. This raises the 2 GB application address limit to 3 GB.

    But for the application to use this additional 1 GB of address space it must be compiled to use “IMAGE_FILE_LARGE_ADDRESS_AWARE in the process header” or linked wit the /LARGEADDRESSAWARE option.

    If you want all the techie details check out
    http://www.microsoft.com/whdc/system/platform/serv...">http://www.microsoft.com/whdc/system/platform/serv...
    http://msdn2.microsoft.com/en-us/library/ms791558....">http://msdn2.microsoft.com/en-us/library/ms791558....


  • EndPCNoise - Friday, July 20, 2007 - link

    But for the application to use this additional 1 GB of address space it must be compiled to use “IMAGE_FILE_LARGE_ADDRESS_AWARE in the process header” or linked wit the /LARGEADDRESSAWARE option.

    I don't think this is something the "average joe user" (in other words ME) can do. If I could do this, how?
  • thorphin - Tuesday, July 24, 2007 - link

    This doesn't apply to you as the end user, it applies to the developers of the application (or game in this case).
  • BUL - Friday, July 20, 2007 - link

    Poor attempt, sport... The /3GB option is a band-aid the works in some cases and causes problems in others. The biggest issue with /3GB is drivers--even signed drivers may render XP useless--and remember, /3GB only applies to XP Pro, not XP Home. Generally speaking, writers of drivers for server OS's need to deal & test for this, but do you think your cheap Chinese-made camera's driver (written by the Guaw-Dong Industrial Conglomerate's programmer who also maintains their website) has an "industrial strength" driver? No...

    What this boils down to is a design flaw in Vista (apparently in its video driver model) and poor coding on the part of ATI/NVidia driver developers & the game developers. Personally, I don't care how complex a game is--if it offers settings that cannot exist in 2GB of address space, especially on XP, then the video game company & its developers are at fault. Now they'll actually have to develop tighter, cleaner code... Boo-hoo.
  • skroh - Thursday, July 19, 2007 - link

    They explained all of those issues in detail in the first article, particularly the way in which the /3GB switch doesn't help with apps that are not large address aware. They also expected the offending apps to crash at the mere presence of the switch at least some times, but apparently this proved to be almost a non-issue. I don't know if they reproduced the stability tests with the /3GB switch under XP, but that might be useful info.
  • thorphin - Tuesday, July 24, 2007 - link

    Of course it doesn't work with apps that aren't large address aware. The burden is on the developers of the applications in question. They must either make them large address aware, port them to 64-bit, or write code that can execute in a smaller address space.

    Heck, they just do all the above to make them as versatile as possible.
  • customcoms - Thursday, July 19, 2007 - link

    The issue is you then limit the os to 1gb of address space (since there is only 4gb total, period, no way to increase that limit w/o 64 bit environments)...which causes vista to crash...

Log in

Don't have an account? Sign up now