How important is having 64-bit programs on 64-bit OS?
Solution 1:
I don't think it's that important to have 64-bit applications per se.
The advantage of having a 64-bit application is that it can:
- Access much more memory¹
- Perform 64-bit register operations.²
¹ A 64-bit program may be a little faster (depending on how it works). If your application is memory hungry (like Photoshop, 3D rendering, etc) then having a 64-bit version will give it access to all the computer's memory. Without that it will be limited to somewhere around 2GB. That's on a per application basis, so two applications can access a total of 4GB.
² Performing a 64-bit operation on a 64-bit operating system is faster than performing it on a 32-bit operating system - it would take at least 2 32-bit operations to perform the same thing.
Stability wise there should be no difference between 64-bit and 32-bit applications.
Solution 2:
The biggest benefit from using a 64 bit application on a 64 bit OS is that you have full access to all the memory available on the system. With 64 bit memory addresses the application can access more memory than its 32 bit equivalent.
In addition 64 bit programs will work "better" than 32 bit ones as they are using the native system architecture. Operations such as memory reads are performed natively etc. This means that the OS doesn't have to do any extra work "translating" (packing/unpacking of memory etc.) the commands that the application is using.
However, most programs - such as Firefox, Word, Adobe Reader etc. - spend most of their time waiting for user input so efficiency isn't necessarily a prime concern. Also most of these applications (at the moment) don't require the extra memory that going to 64 bit would give them access to.
Programs such as graphics drivers do have to work efficiently and perhaps have access to higher memory registers and so need to be 64 bit.
Solution 3:
Yes, you can run without problems the 32bit apps on your 64bit operating system, BUT. There is another problem of wasting space - the libraries. Basically an app would load the appropriate library it needs, but the problem is that 64 bit libraries are not compatible with 32 bit ones, and vice versa.
Of course usually the needed libraries are shipped with the application itself, but the core ones - Windows ones - are stored twice - one of them - the 32bit one, and the other - the 64bit one.
They also occupy more memory on RAM if you have one 32bit application and one another 64bit running concurrently - the two apps loaded their own version of library and so they are using more RAM than they could if they were both using the same library.
So, for the sake of saving RAM and Hard Drive space - try to run and install 64bit only apps, and install 32bit ones only if you couldn't find a 64bit version. Now, more and more apps are shipped in both versions.
Solution 4:
The answer is "it depends"
Some 32-bit 'applications' will not work in 64-bit mode, for example graphics drivers and shell extensions (such as Tortoise SVN). In such a case you need a 64-bit version.
For other normal applications, then it depends on what they do.
If you happen to have, for example, 16GB of memory and are running SQL server with an extremely large database, then having 64-bit version of SQL is very important.
If, however, you have 4Gb of memory (with almost 1gb 'stolen' by the video card), then you may be running low of memory and using 64-bit applications (which may require more memory) may actually slow your system down.
Even ignoring memory considerations, you can not say for certain that a 32-bit application running in 64-bit mode will be faster or slower than the 64-bit equivalent, nor whether the application will be faster or slower than when running on a 32-bit operating system.
Personally, if I'm looking for a utility or small application for my machine, I will check that it works with 64-bit operating system, but whether the application is 32-bit or 64-bit is not normally high on my priority list.
According to Process Explorer, I currently have 25 64-bit processes and 28 32-bit processes running, ignoring Chrome)