Win 7 - 32 or 64 bits with 4 gigs

enewmen

Distinguished
Mar 6, 2005
2,249
5
19,815
Hi All.

If I had ONLY 4 gigs RAM, will I be better off with 32 or 64 bits?
I'm leaning towards 64 bit to be more future-proof. But will this also make every application use twice as much memory as before? Something like registers using twice as much data?

With 6+ gigs, 64 bit is the only choice, but with 4 gigs I don't have a clear answer.

ok thanks!
 
Solution
No, your applications will not use twice as much memory. The registers are twice as big, but they don't use memory, they just process data retrieved from memory. It's possible that 32-bit applications might use a small amount of extra memory, but a properly written 64-bit application should use less memory. (And a 64-bit application will be able to make use of those wider registers - and the fact that there are twice as many of them - to run more efficiently.)

With 4Gb you will be wasting about 1/4 of your memory, which will be inacessible, if you go for 32-bit. That's probably more than any extra memory usage when running 64-bit. It's a no-brainer to me - go for 64-bit.
No, your applications will not use twice as much memory. The registers are twice as big, but they don't use memory, they just process data retrieved from memory. It's possible that 32-bit applications might use a small amount of extra memory, but a properly written 64-bit application should use less memory. (And a 64-bit application will be able to make use of those wider registers - and the fact that there are twice as many of them - to run more efficiently.)

With 4Gb you will be wasting about 1/4 of your memory, which will be inacessible, if you go for 32-bit. That's probably more than any extra memory usage when running 64-bit. It's a no-brainer to me - go for 64-bit.
 
Solution
First of all, you need to use a 64-bit operating system in order to access all of your 4GB. A 32-bit OS will only be able to access about 3 to 3.5GB or so, depending on the memory aperture of your video card.

Secondly, just because you use a 64-bit OS it doesn't mean you have to use 64-bit applications. The reality is that most applications are still 32-bit, and they work perfectly well in a 64-bit environment. There's a little extra overhead because special DLLs are needed to interface the 32-bit program into the 64-bit environment - but those DLLs are shared among all programs on the system and you'll still see a net benefit in memory because you'll be able to use the entire 4GB.

Thirdly, as ijack says there really isn't a huge size difference for 64-bit applications anyway. The biggest impact is increased stack space, but that's a pretty small portion of the overall program - not something to be concerned about.

And lastly, memory is one of the cheapest and most effective upgrades you can do - IMHO it would a little crazy to effectively eliminate the possibility of a later upgrade by choosing a 32-bit OS. If you do, it means a lot of pain (complete reinstall of your OS and all your applications) for what should be a dead-simple upgrade.
 
Performance wize, I do not think you would see any difference in performance ( have 4 systems 1 64 bit w/12 gigs ram and 3 32 bit w/4 gigs ram.

That said, I concur with others, unless there is a specific reason not to, go with the 64 bit win 7.

Use to be not to long ago that min memory was 2 gigs w/4 gigs recommended. That has doubled, the min recommended is now 4 gigs with 8 gigs as recommend.
 

enewmen

Distinguished
Mar 6, 2005
2,249
5
19,815
Best answer selected by enewmen.
n
nThanks for the good info guys!
nIt seems like a no brainer to go 64bit!
n
nI already have a desktop with 64 bit Win 7. This can run even my old funky 10 year old 3D games, so I'm not worried about compatibility.
n
nThe 64bit Win 7 will go inside a netbook which has only 1 memory slot, so I can't get 8 gigs yet. I hope there will be 8 gig DDR3 memory sticks coming out later.
 

enewmen

Distinguished
Mar 6, 2005
2,249
5
19,815
The netbook is an Acer C-50 Fusion with a 720p screen.
I expect it to be MUCH more capable than the brain damaged & castrated Atom based netbooks.
It will take a 4Gb module from Newegg feedback (I'm working overseas now) and I'm hoping for a 8Gb module sometime later.
 

cadder

Distinguished
Nov 17, 2008
1,711
1
19,865
We've built some 64-bit systems for CAD use because we do need more than 4GB of ram. We found that getting good drivers is a lot of trouble, even for name brand video cards intended of professional use. Also our older proprietary 16-bit apps don't run without running virtual mode XP, and this is a massive pain in the butt. For this reason I've kept my own CAD workstation at 32 bits. If I get to the point where I will have to upgrade to 64-bit versions of my CAD apps, I will have to have 2 workstations on my desk- one 32-bit and one 64-bit.

If you are running 32-bit apps, then it doesn't matter if you run 32-bit OS or 64-bit OS, and there aren't many apps outside of fields like engineering or maybe video processing that are 64-bit and need more memory. Running 32-bit apps I'm not sure if you can access ram beyond 3.5GB even if you do have a 64-bit OS and more ram, maybe you need 64-bit apps for that.

However my contention has always been that a 64-bit app will require more memory because every address inside the program will be 64 bits wide instead of 32 bits wide.

In my mind the safe approach right now is 32-bit OS. If you need more then you probably already know it.
 
Having dabbled quite a bit in 64-bit assembler programming, I would say that you are taking a very simplistic view of memory usage. It is true that any absolute addresses will take up twice the space on a 64-bit system but, in reality, programs contain very few absolute addresses. Most memory access, e.g. local variables in functions, is via the stack or values stored in other registers. This does lead to a slightly increased memory usage (although nowhere near two times) but is offset by other factors:

1. The 64-bit calling convention passes the parameters to most functions in registers rather than using the stack. This can add up to quite a saving.

2. The eight extra general purpose registers available in 64-bit mode allow for much reduced memory access. Not only does this save space but is considerably more efficient than storing transient data in memory.

3. Similar considerations apply to floating-point and multimedia registers.

Data storage, of course, is exactly the same on both systems. A 64-bit address can address memory in 8-bit increments, just as 32-bit addressing can.

The total result of these factors, in my experience, is little or no increase in RAM used (possibly even, in some cases, a decreased memory requirement) and considerably more efficient programs. In addition, of course, one has the extra address space available. Memory prices are falling all the time so even if it were true that a 64-bit program used (say) 1.5 times as much memory (which I am quite confident is not the case), the fact that you can address 16Gb or more, as opposed to the meagre 3Gb+ available to 32-bit Windows, far outweighs this.

As for the fact that 32-bit applications running in 64-bit Windows can only access 3Gb+ of RAM, that is true. But take two programs and that is 6Gb, three programs and it's 9Gb. I'm sure you get the picture. Under 32-bit Windows three applications running at the same time can only access about 3Gb RAM between them - an average of 1Gb each - whereas under 64-bit Windows they can each access 3Gb. Running multiple programs is not an uncommon scenario; indeed when you also take into account the operating system itself and its services you are always running a large number of programs at the same time.

32-bit has had its day (though I'm sure there are still some hardy souls sticking to their 16-bit operating systems) and the sooner we all switch to 64-bit, and force software and hardware developers to fully support it, the better.
 
ijack is quite correct in his assessment of the effect of 64-bit addressing on the size of a program. In fact the only area of memory that's substantially bigger in a 64-bit program is the stack, and that's because 64-bit words are used instead of 32-bit words. Still, in a typical program the stack only takes about 1MB of memory which, even doubled, is still a pretty small amount in a system whose memory is measured in GB.