3 ms·
All things being equal, on 32-bit systems, pointers are 32 bits wide, and on 64-bit systems, pointers are 64 bits wide. So if your program previously used X by
by kbolino 14y ago
All things being equal, on 32-bit systems, pointers are 32 bits wide, and on 64-bit systems, pointers are 64 bits wide. So if your program previously used X bytes of memory for storing pointers, it would now use 2X bytes. Depending on how pointer-heavy your memory usage is, the impact of this change could be anywhere from negligible to significant.
This is part of the reason why games remain 32-bit on Windows as well (that, and compatibility with 32-bit versions of the OS).
However, there are, on x86 at least, other reasons to go 64-bit, perhaps the most prominent of which being the availability of additional general-purpose registers (8 more, to be precise).
An ABI for Linux has been proposed called x32 that would run 64-bit code but use only 32 bits for pointers. This would re-impose the 4GB per-process memory limitation but still allow the use of other 64-bit-only features. AFAIK, x32 programs are not compatible with x64 libraries, and vice versa, though.