Even if you have a 64 bit CPU, you should only run a 64 bit OS if you have more than 3GB of memory. 64 bit applications (including the OS) require more memory to support the larger pointer sizes and data sizes. They use typically 50% more memory than 32 bit apps.
The memory overhead is not nearly that high. Yes, there is an extra memory overhead in the world of 64, and it comes from these three sources:
* larger code size, in part because some of the 64-bit instructions and operands are longer... this overhead can vary a lot--in some cases, it's only about 5-10% of code size, and in some extreme cases, it can be 50%
of code size... this percentage is not of the total memory footprint, but only of the memory footprint taken up by executable code--this usually is not a lot because in modern apps, executable code accounts for a relatively small portion of the total memory usage... so if 25% of your app's memory is used for code, and 64-bit increased the code size by 25%, then the 64-bit code memory cost for that app is only 6% of the app's total memory usage.
* larger data size,
if the data contains pointer-like data... generally speaking, most data will be unaffected; in most cases, only a very small amount will
* the wow64 layer is needed to support 32-bit code in 64-bit Windows, and this also includes a duplicate set of system libraries... in most cases, the extra memory used by the wow64 layer dwarfs the extra memory used by code and data
On a typical system, most of the overhead comes from wow64. Some of it comes from the code overhead. And only a minuscule fraction from larger data sizes. Of these, the wow64 overhead is mostly fixed: it's going to cost you the same amount of memory no matter how much you use. The code overhead is not fixed--it's a (small) percentage of the total amount of 64-bit code running. Larger data sizes is so small that it's background noise and can be ignored.
Because the largest source of the extra memory usage--wow64--consumes roughly a fixed amount, its impact as a percentage of the total memory drops as you get more memory. At 3GB, I think it makes sense to do 64-bit.