Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I'm running a 64-bit OS (Windows XP x64 edition) and a program has both a 32-bit version and a 64-bit version, what are the advantages of using the 64-bit version? Will it be faster?

share|improve this question
up vote 1 down vote accepted

XP 64-bits is not more secure than 32-bits.

Vista and (better) Windows 7 introduced in 64-bit mode enhanced security with hardware-backed DEP, Kernel Patch Protection and mandatory driver signing.

So the only advantage in XP is that a 64-bits program can use more than 4 GB of memory.
However, practically speaking, no program needs so much memory, except in large servers.

share|improve this answer
No program uses more than 4Gb of memory? Except on servers? That's a bit strong, ain' it? – Rook Jun 6 '10 at 20:13
No, its totally correct. Also take Bubu's answer in account, you may notice improvements in performance. (Yeah I'm in that 1% and I did notice some 64bits are faster than the 32bit version.) – Shiki Jun 6 '10 at 20:21
@Shiki - I'm not arguing performance (simply because I've no idea whether there is any). But a lot of programs use more than 4gb of memory. True, they may not be programs for a wide spectra of users, but nevertheless (think numerical computations). – Rook Jun 6 '10 at 20:25
Hm... Hardware DEP is available in 32-bit systems (including XP), and Kernel Patch Protection was ported back to Windows XP 64-bit in some update. – Hello71 Jun 6 '10 at 20:38
Idigas: Well.. but if one uses a PC for mathematical computation... ^^" | anyway: XP 64 bit is something what one should not use. Only Vista/Win7 comes with seamless support in my opinion. Even drivers on XP for 64bit can be a pain in the arse.. – Shiki Jun 6 '10 at 20:50

if you run the 64-bit version, it will be able to address more memory, and if it is optimised well (as are some games) there may be a <10% improvement in performance. But in general it is not felt by the endusers.

i think most people run 64-bit just because of the memory addresing concerns.

share|improve this answer

If the program does any of:

  • access more than 2 or 3 GB of memory
  • do arithmetic on 64-bit integers, especially multiply and divide
  • assume higher CPU generation/feature-set in the 64-bit build and take advantage of that (e.g. SSE instructions)
  • use the twice-as-wide SIMD registers to good effect

then 64-bit can be a big win.

If none of that is the case, then the 64-bit version will be larger and use more memory, and might be slower! I've benchmarked a program and library tests built both ways, and the 32-bit version was faster. Apparently it caches worse, with the larger pointers leading to larger structures and the increased memory use prevents as much from fitting in the cache RAM at any given tier. The additional registers did not make up for that.

YMMV with each processor generation and model and across brands. But in general, memory access is a real speed bottleneck and that is a lasting trend.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .