views:

328

answers:

3

Imagine the same hardware running Windows XP 32bit, or Windows XP 64bit.. (being that it's a 64bit processor currently running XP 32bit)

2gigs of ram...

Will the performance of Visual Studio benefit from going to the 64bit OS?

The hardware and ram is currently out of my control... If I could throw more hardware or ram at it I would.

A: 

not unless you add more RAM.

In fact 64 bits might even slow you down because 64-bits Windows sometimes have to load both 32-bits and 64-bits versions of a same DLL in RAM.

Add more RAM is the way to go because if you are using Windows 7 or Vista they aggressively caches disk files in RAM.

oykuo
+2  A: 

For 2 GB of RAM, most likely not. The biggest advantage of 64-bit is the additional address space. With 2GB of physical RAM, 32-bit OS's can map all of physical memory.

Above 3GB 64-bit OS does give some benefit, since some of your physical memory may be unusable on 32-bit OS's due to devices mapping physical addresses for their own use.

And obviously if you want to use above 4 GB of memory you should absolutely go for a 64-bit OS.

Michael
This is what I thought, I guess I was just curious if there are any improvements in the way windows runs under that, enough to boost the performance of the machine as a whole.
zimmer62
Some operations (like 64-bit arithmetic) should be faster since the processor supports that natively. But those are usually negated by the fact that 64-bit code tends to be a bit larger (64-bit pointer literals instead of 32-bit). For compiling/linking with 2 GB of memory on Visual Studio, I doubt you'd see a benefit.Where I work we build on 64-bit machines with 8 GB of memory - we build large parts of the project in parallel and linking is very memory hungry - 64-bits enable us to keep much of this data in memory and gives us a good perf win.
Michael
+1  A: 

Yes, if you have sufficient physical memory, you will gain some benefits from running Visual Studio in 64-bit Windows as described in Visual Studio: Why is there no 64 bit version? (yet):

Doesn’t being a 64 bit application save you all kinds of page faults and so forth?

A 64 bit address space for the process isn’t going to help you with page faults except in maybe indirect ways, and it will definitely hurt you in direct ways because your data is bigger. In contrast a 64 bit operating system could help you a lot! If you’re running as a 32 bit app on a 64 bit OS then you get all of the 4G address space and all of that could be backed by physical memory (if you have the RAM) even without you using 64 bit pointers yourself. You’ll see potentially huge improvements related to the size of the disk cache (not in your address space) and the fact that your working set won’t need to be eroded in favor of other processes as much. Transient components and data (like C++ compilers and their big .pch files) stay cached in physical memory, but not in your address space. 32 bit processes accrue all these benefits just as surely as 64 bit ones. (my emphasis added)

Grant Wagner