A Messy Transition (Part 2): Windows XP, Vista, and the 2GB Barrier
by Ryan Smith on July 19, 2007 12:00 PM EST- Posted in
- Software
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 |
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?
57 Comments
View All Comments
mlau - Thursday, July 19, 2007 - link
PAE is a hackish solution to enable more than 4 GB *physical* RAM; it hasnothing to do with address space (where 4GB is still a limit).
But you are right, most windows driver devs are morons and only know how to
work with 32bit UP kernels. Thank heavens for unix where 64bit SMP is an old
thing.
pallejr - Sunday, July 22, 2007 - link
It's not really a hackish solution. It's a way to extend to PHysical address space beyond 4GB.ChronoReverse - Thursday, July 19, 2007 - link
I was under the impression that VRAM is virtualized under Vista so that multiple programs are presented with the full memory of the video card. Since this memory needs to be addressable, each (3D) program will immediately have the VRAM allocated.Slaimus - Thursday, July 19, 2007 - link
I remember reading that the virtualization was made optional for DX10, because many graphics chip makers were unable to implement it properly in their drivers.kf27fix - Thursday, July 19, 2007 - link
What about other software, other than games? For example does Word (2003 or 2007) use more memory/address space under Vista than under XP? Perhaps it's not just games...mlau - Thursday, July 19, 2007 - link
How did you "measure" the "address space consuption"?Do you actually know what gets mapped into the games' address space.
Because code bloat alone could not explain the vast differences between
vista and xp...
nullpointerus - Thursday, July 19, 2007 - link
Part 1 of this article series describes how they monitored virtual address space usage.http://www.anandtech.com/gadgets/showdoc.aspx?i=30...">http://www.anandtech.com/gadgets/showdoc.aspx?i=30...
imaheadcase - Thursday, July 19, 2007 - link
Does a game fill video memory first,then offload the rest to system memory? Don't scream "noob alert" for the question..because.. I ask if a 8800GTS with 320megs should NOT have Supcom crash if you also have 2gigs of ram, 2gig + 384gig = 2.384gig give or take for Supcom to use?Inspiring minds want to know!
Also, another "fix" you also should mention is just lowering details in such games to save space in memory.
Did you look at Vista SP1 fixes website to see if such a item could be a "fix" for this? It might already be listed there, just not available till SP1
grant2 - Thursday, July 19, 2007 - link
I ask if a 8800GTS with 320megs should NOT have Supcom crash if you also have 2gigs of ram, 2gig + 384gig = 2.384gig give or take for Supcom to use?The OS only offers 2gigs of address space to the application. So the amount of physical chip memory is not the issue at hand here. Even if you have 3, 4, 6gb of memory on your motherboard, the software can only "see" 2gb of it.
When it comes to your graphics card, the application needs to address ("see") the video memory. So (in vista) the larger your video card, the more of that valuable address space is consumed by being pointed to the vcard memory.
EndPCNoise - Friday, July 20, 2007 - link
Hopefully Ryan Smith or grant2 or somebody can answer this:Assume you are running either 32-bit XP,XP Pro or 32-bit Vista.
If you have 4GB of RAM installed on your motherboard, then ALL your address space should be used in on-board RAM and video card RAM, and NONE in Virtual Memory (Hard Disk Drive). Is this correct?
Windows could not use Virtual Memory because all the address space has been accounted for in on-board RAM and video card RAM (assuming you have 4GB RAM installed). Is this correct?
You would still have the 4GB address space limitation -- 2GB for the operating system and 2GB for applications. I believe the 2GB application limit would still be breached. However, would the crash be delayed due to the fact that the CPU can access RAM much faster than Virtual Memory?
On another note...Why does Microsoft state that 32-bit Vista Home Premium supports up to 16GB RAM if there still exists a 4GB limit on address space? -- This does not make sense.
I apologize for sounding like such a dummy, but most of this stuff is "out of my league." I appreciate your help in my understanding. This is why Anandtech is my favorite site.