Vista Workshop: More RAM, More Speed

The Trouble With 32 bit Applications

Even when using a 64 bit version of Windows, the user can never really escape the past. For now, native 64 bit applications are rare, meaning that the majority of programs in use today are still 32 bit versions. In order to be able to execute these applications, Microsoft implemented the Windows-on-Windows 64 bit subsystem, also known as WoW64. In effect, WoW64 is an emulator for 32 bit applications which consists of the three DLL files WoW64.dll, WoW64win.dll and WoW64cpu.dll.

The task manager shows 32 bit applications.

The process explorer also differentiates between 32 bit...

...and 64 bit applications

Because the applications are being run in an emulation environment, it is difficult to judge their performance objectively, but most apps runs slightly slower than in a native 32 bit system. Microsoft claims that especially memory-hungry software may even run faster, but at any rate, the tests showed only marginal performance differences.

Another issue with 32 bit applications is the maximum memory chunk each process is able to address, namely 2 GB. This limit can be adjusted to 4 GB using a few special settings.

Photoshop is only able to use 3 GB, even though the system is equipped with 8 GB.

In the end, this means that even with 8 GB or more of system memory installed, each 32 bit application can only use a maximum of 4 GB. The only recourse these applications have is to page some of their routines that are currently not in use to the hard drive, which is obviously not going to improve performance.

The screenshot above shows that the files are loaded directly into RAM until 3 GB is reached; at that point, Photoshop is forced to write the files to the hard drive. As a result, CPU load also decreases, because the hard drive is much slower than system memory, meaning the CPU is waiting for data.

Native 64 bit applications are ready for the future, and each single process is able to address up to 8 terabytes of memory. Nonetheless, developers will have to update their applications accordingly. Simply re-compiling the 32 bit applications with a 64 bit compiler is not sufficient, as this would result in each process still being limited to 2 GB.

Create a new thread in the US Reviews comments forum about this subject
This thread is closed for comments
Comment from the forums
    Your comment
  • anonymous x
    Nice article!
  • trifler
    We need to see benchmarks comparing Vista with 2MB, 4MB, and 8MB. I can't tell my boss that the new high-end computers should have 8MB without some numbers.
  • Anonymous
    I think meant GB not MB there Trifler... 8MB of ram is not very much... and a "high-end computer" should have at least 2GB of RAM for a 32-bit system, and is OS dependant for 64-bit systems... vista depends on the ver you use as to how much ram is max.
    I have 1 GB of RAM and am using 80% after a normal boot (plus a few non-essential apps... but they make doing things easier
  • SkyPRZ
    There is a "test setup" but not followed by any test but directly by the conclusion.
    Did I miss something?
    Nevertheless I've already built a system with Vista 64 & 8GB ram few weeks ago and wanted the test to comfort decisions I made.
  • trifler
    Bleh I meant GB not MB in my earlier comment...
  • master9716
    with 2 gigs of ram my 64bit runs ultra fast compared to 32bit , I have 3 hdds quad 6600. it should be the otherway around though . On my laptop with 1.5 gigs vista basic runs prety bad I will reinstall see what happens . We need to see some load time benchmarks !!! eventhough this is an old article
  • Darthb0b0
    on page 7, how are you changing the amount of ram a particular app is using? is this only applicable to 64-bit windows, or could you also change this with 32-bit?
  • Darthb0b0
    One other thing. on page 5 you say that w/4gb of ram it has no benefit to go to 64 bit due to the larger memory foot print required - essentially eating up the extra memory. The extra system memory used is 757 - 549 = 208. Yet the extra addressable memory gained is 4096 - 3581 = 515. The difference is still a net gain of 307mb of ram. Or am I missing something?

    Also, is the reason that only 3.5GB is available in the 32-bit environment due to the 512mb video card and MMIO? If so, what will happen in a 32 or 64 bit system if you have a video setup with 2gb of video ram? Will you only have 2GB of main memory available?
  • Darthb0b0
    One answer found:

    Significant chunks of address space below 4GB (the highest address accessible via 32-bit) get reserved for use by system hardware:

    • BIOS – including ACPI and legacy video support

    • PCI bus including bridges etc.

    • PCI Express support will reserve at least 256MB, up to 768MB depending on graphics card installed memory
  • spacetime
    This is a well-written article that explored and clarified some things for me. However:
    1. Like skyPRZ above, where are the tests results?
    2. Vista 64-bit accesses a much larger virtual address space than does Vista 32-bit, regardless of the quantity of the system's RAM. I wonder whether this accounts for the "smoothness" my 64-bit system has with only 2 GB RAM.
    3. 64-bit Vista has some security advantages compared with 32-bit.
    Does anyone have any thoughts on these points?
  • Darthb0b0
    According to this article:

    If you have the right chipset in a 64-bit system, it will actually map the hardware memory addresses above the 4gb mark. It only lists some older Core2 chipsets, but my guess would be that it also works with the newer ones. I've got an open case with MS regarding this and will let you know if they get me a more definitive answer.

    I'm making an assumption here, Spacetime, but if you have one of the listed chipsets, or the current generation thereof, and only 2GB of ram, it might be mapping the hardware addresses above 2gb and giving you a smoother ride.
  • deck
    TriflerWe need to see benchmarks comparing Vista with 2MB, 4MB, and 8MB. I can't tell my boss that the new high-end computers should have 8MB without some numbers.

    Surely you mean GB.
  • Anonymous
    Disabling a swap file is a stupid idea, even if you have lots of RAM. You see, your RAM is not only used for your applications, it is also used for things like disk cache, for example. Now suppose you have 4GB RAM, 3GB memory used by running applications (and system), and the only active application + system using together 1GB of memory. Suppose that this app repeatedly accesses 3GB worth of data on the hard disk, and the other apps are sitting idle in the background. Obviously, swapping them out to the pagefile and freeing 3GB of RAM for disk cache will drastically IMPROVE performance.

    In summary:
    Let the system decide what to put in RAM and what to swap out. It knows better than you.
  • the_deek
    "Let the system decide what to put in RAM and what to swap out. It knows better than you."

    Why should windows need a pagefile at all? I run 3GB of RAM in my laptop with 64-bit linux installed, and it never hits the pagefile. I can have firefox open with 10+ tabs, evolution (e-mail), phpEdit, GIMP, several terminal sessions, and Amarok running, the only time it hits the disk is when I open and close files or when I close or open a program. The very idea of an OS having to hit the pagefile when I'm just switching from one program to another is ridiculous and exposes a fundamental flaw in windows memory management. So I do not think the OS knows best.
  • Anonymous
    I wonder if my mobo has a remapping memory feature : gigabyte ga-ex38-ds4. I can't find any informations on it.
  • boibknud
    Pretty useless article IMHO.

    No tests or benchmarks - although there's mention of a "test setup" as SkyPRZ noted earlier. All the article does is to show that 64-bit can see 8GB of RAM and that Windows allocates more of itself in a Vista 64-bit setup.

    And then there's page 6 "Does No Swap File Equal Better Performance?"
    Why state a question in the article if you're not going to answer it? All they do is to say that it's a bad idea with 2GB RAM and that the PC does not crash if you have 8GB. No analysis whatsoever of whether it can increase performance.
  • grieve
    +1 boibknud ->this article is rubbish.

    Also I read this February 15, 2008....when it came out.

    Old, inaccurate news!
  • Anonymous
    The article says, "all of the variables are no longer only 32 bits long, but 64 bits instead"


    Only pointers are 64-bit, (plus a bit of extra alignment padding here and there for badly arranged structures.) Please don't make stuff up. Just a few huge improvements for 64-bit OSes: better compiled code - all 64-bit targets can assume 16 additional registers (8 extra integer, 8 extra SSE), the compiler can confidently always use a ton of much faster branch-free instructions like conditional moves, can assume SSE2 capabilities, so the old crappy x87 FPU instructions are never needed, MUCH bigger system pools, so handle leaks are tolerated much better and system capacities are much higher, almost infinite address space - so address space fragmentation is a non-issue, more effective address space randomization, so NOP sled security holes are more difficult to pull off, guaranteed data-execution-protection, severely hampering buffer overrun hacks, flat addressing model, eliminating the need to play with segment registers, less protection checking by the CPU, only paging protection is needed.

    The list goes on and on. Dismissing a 64-bit OS for machines "with less than 3GB" is foolish.
  • Anonymous
    I prefer having MY ram being used for what I WANT not what the operating thinks I want to do next. If I have 1gb of ram and the operating system is still using 350mb without superfetch thats ram I can't access. I feel that a lot of people with lesser computers feel this way and suggest Microsoft tighten down their memory consumption.