From our Windows Vista performance guide:

Except in a few cases where 64-bit code is clearly faster, the primary purpose for Vista x64's existence is to resolve the problems of 32-bit addressing space, and we're just not at the point yet where even most enthusiasts are pushing that limit. Once applications begin to push the 2GB addressing space limitation of Win32 (something we expect to hit very soon with games) or total systems need more than 4GB of RAM, then Vista x64 in its current incarnation would be a good choice.

For some time now we have been mentioning the potential problems that are likely to result from the switchover from 32bit(x86) Windows to 64bit(x64) Windows. Due to a multitude of issues, including Windows' memory management, the basic design of the PC architecture, and consumer support issues, there is no easy path for mass migration from 32bit Windows to 64bit Windows. As a result we have been expecting problems as consumers begin to make the messy transition.

We published the above mentioned guide on February 1st, expecting the fall/winter 2007 games to be the ones to push the 2GB addressing space limitation of Windows, and it turns out we were wrong. It turns out that two weeks after we published the above article, THQ published Supreme Commander, a RTS with a massive appetite for resources. It can be simultaneously GPU limited and CPU limited, which is why it's a standard benchmark here for our performance articles, it's also memory limited in more than one way: it's hitting the 2GB barrier of 32bit Windows.

An artifact of the design of 32bit processors and the 32bit API for Windows, the 2GB barrier is a cap on how much addressing space (related to but not equivalent to memory usage) a single application can use. This isn't a bug but rather the result of how hardware and software was created so many years ago, and while everyone has known this barrier will inevitably be hit, as we'll see there are several reasons why it can't simply be moved or bypassed. Meanwhile hitting it involves affected applications crashing for what can appear to be no good reason, and understanding why the 2GB barrier exists and what can be done will be important for resolving those crashes.

On a personal note, I am a semi-casual player of real time strategy(RTS) games and I've been playing Supreme Commander lately. This is a different kind of article, it's a record and the result of my own efforts to resolve why I was having crashing issues with Supreme Commander. With no intended disrespect towards THQ or the game's developers (Gas Powered Games) we could have not possibly asked for a better example of the 2GB barrier in action. It's exactly the experience we believe many people will have as they hit the 2GB barrier, mainly those power users who use large monolithic applications such as games or multimedia tools. This is an article on what the problem with the 2GB barrier is, what kind of experiences a user may expect when hitting it, and what can be done to fix it.

But before we get too far ahead of ourselves, let's discuss memory management in Windows. Understanding the problem with Supreme Commander requires understanding what the 2GB barrier is, why it's there, and what makes it so problematic.


A Primer on Windows’ Memory Management
Comments Locked

69 Comments

View All Comments

  • johnsonx - Saturday, July 14, 2007 - link

    We are both right. While many 32-bit apps run fine on 64-bit windows, some don't. In particular, any app that employs any sort of driver (I'm talking software drivers, not hardware drivers) must at least have the driver compiled in 64-bit mode. In my case the example is a file synchronizing application that installs a driver to monitor file system changes. There are many apps that wouldn't appear to need a driver, but in fact they do. If you want to see the software drivers on your system, go into Device Manager and select Tools->Show Hidden Devices. Now look in "Non-Plug and Play Drivers". Everything in there is a software driver. If you're running 64-bit Windows, everything in there MUST be 64-bit. Applications can also install drivers at runtime, which also must be 64-bit.

    There are other 32-bit apps that for whatever reason just won't work on 64-bit windows. I believe AutoCAD 2006 and earlier have this problem. Likewise, any apparently 32-bit app that still has some 16-bit legacy code won't run either (for example some rather old but still perfectly useful 32-bit apps use a 16-bit version of InstallShield; the app itself might run, but there's no way to get it installed.).

    Regarding the Retail version, I've never had a retail version of Vista in my hand. I recall Microsoft saying at one point that both versions would be on the same disc and had never heard anything contrary.
  • Christopher1 - Sunday, July 15, 2007 - link

    So this 64-bit software driver problem doesn't apply to things like games, I would assume, considering that they usually do not install software drivers?

    Well then, I think I'm going to contact Toshiba and use their 'Upgrade to x64 version of your operating system' option that recently appeared, if this doesn't effect games.
  • miahallen - Sunday, July 15, 2007 - link

    No, all games should run fine on x64...however, tests have shown that most games run slightly faster on Vista x86.
  • miahallen - Saturday, July 14, 2007 - link

    OK you are right, I stand corrected. I knew about this, just wasn't thinking about it. But from my experiance, those particular apps (that use SW drivers) seem to be the ones getting the quickest attention. I do recall having a couple issues related....a freeware plugin for MCE called mymovies. x64 is not supported at all. Also, Daemon Tools & PowerISO were having issues...but I believe they have both been resolved since then (I went to x86 about four months ago, not much point for me to go back until my next upgrade - 8GB RAM).
  • strikeback03 - Friday, July 13, 2007 - link

    Somehow I'm doubting that the "average computer user" who buys a prebuilt system without knowing or caring about OS design will stand for random peripherals not working due to a 64bit OS. Probably part of why finding 64bit versions of Vista on prebuilt systems is hard. What should happen is Microsoft state right now that the next version of Windows will be 64bit only; then try and educate consumers that some things won't be compatible, and notify companies that they really need to have their 64bit drivers working by then.
  • jay401 - Thursday, July 12, 2007 - link

    No, they should have rendered their units properly (if that's even the real reason... somewhere though they aren't doing something right in their coding, given the way SupCom eats memory).
  • jpeyton - Thursday, July 12, 2007 - link

    On page 5, under Software Test Bed, the RAM should read (4x512MB) instead of (4x512GB).
  • fic2 - Thursday, July 12, 2007 - link

    First sentence on the front page summary:

    "As applications being to approach"

    I assume that "being" is supposed to be begin.

Log in

Don't have an account? Sign up now