41

I recently upgraded to 64-bit OS(Windows 7) from my old 32-bit version. I noticed that while several applications are available in 64-bit(e.g. DC client, Tortoise SVN, Graphics driver), many are still 32-bit applications (e.g. firefox, adobe reader).

So, how important is it to have 64-bit applications (performance wise)? I use my laptop for many different things like gaming, coding etc.

5
  • 1
    Just wait until you start wanting to play your favourite old games with 16 bit installers. Backwards compatibility for those are provided in XP64/32, Vista32,and 7 32, but not Vista64 or 7 64.
    – Alain
    Apr 15, 2011 at 16:06
  • 1
    @Alain : I was never able to get old games running on my 32-bit OS anyways, so it's probably not a very big loss.
    – apoorv020
    Apr 15, 2011 at 16:27
  • 1
    It is if you love Master of Orion II and Populous the Beginning as much as I did ;) Anyways, Windows Virtual PC + an old OS installation CD does the trick and saves you from dual booting.
    – Alain
    Apr 15, 2011 at 16:38
  • The largest improvement I noticed from a user perspective is the ability to load larger files than 2GB-ish. Especially working with large images in Adobe software. Aug 11, 2013 at 17:33
  • @Alain, because the various VM software have varying levels of audio/video driver support for old OSes, even that isn’t always going to work. I had a heck of a time getting Jewels of the Oracle II to run.
    – Synetech
    Aug 11, 2013 at 17:46

7 Answers 7

36

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.

7
  • I think my DC client does file hashing at a much improved speed now.
    – apoorv020
    Apr 15, 2011 at 8:58
  • That makes sense if it's doing hashes. Some of those can be optimized on higher bit widths. Apr 15, 2011 at 13:25
  • It's also possible to make assumptions about the CPU's abilities with x86-64, like supporting SSE3.
    – afrazier
    Apr 15, 2011 at 15:48
  • 4
    By default applications running on 32-bit Windows will only have access to 2GB of memory. The operating system as a whole has access to a little over 3GB total to be shared by all applications. Apr 15, 2011 at 16:22
  • @Michael Steele is right. The max available memory for the system is typically 3.12GB, the rest is reserved for addressing hardware. For a more detailed account see here: support.microsoft.com/kb/929605 Apr 15, 2011 at 16:51
11

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.

2
  • 1
    System drivers are required to be 64-bit in many cases if they will need access to certain memory registers. I believe certan things will work with 32-bit drivers on a 64-bit system, but nothing intensive like a graphics card Apr 15, 2011 at 13:27
  • 1
    @Joshua: System drivers really depend on the OS and the machine arch. Some 64-bit CPUs don't have modes, just added 64-bit instructions. x86_64 has an expensive mode switch to get from 64 to 32 and back, so drivers are almost always required to be 64-bit.
    – Zan Lynx
    Apr 15, 2011 at 21:37
5

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.

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)

3

Bear in mind that on 64-bit Windows, 32-bit applications are being executed through an emulation layer known as WOW64, which does impose some additional limitations not present when running under a 32-bit Windows OS.

From https://msdn.microsoft.com/en-us/library/aa384219(v=vs.85).aspx:

Performance and Memory Consumption Under WOW64

  • Processor hardware. Instruction emulation is performed on the chip. On the x64 processor, instructions are executed natively by the micro-architecture. Therefore, execution speed under WOW64 on x64 is similar to its speed under 32-bit Windows. On the Intel Itanium processor, more software is involved in the emulation, and performance suffers as a result.
  • API thunk overhead. This overhead is small compared to the NT kernel call itself. NT kernel functions are intended to be called infrequently.
  • Virtual memory size. On the Intel Itanium processor, WOW64 adds significant overhead if two or more instances of the same 32-bit application are running concurrently. This is due to the native 8 KB pages on the Intel Itanium, which complicates the emulation of the native 4 KB pages on the x86 architecture (more pages are marked as writable; all writable pages are private to the process). This can adversely affect the scalability of Terminal Services on certain processors. This is not the case for the x64 processor.
  • Working set. WOW64 increases the size of the application's working set.

  • WOW64 enables 32-bit applications to take advantage of the 64-bit kernel. Therefore, 32-bit applications can use a larger number of kernel handles and window handles. However, 32-bit applications may not be able to create as many threads under WOW64 as they can when running natively on x86-based systems because WOW64 allocates an additional 64-bit stack (usually 512 KB) for each thread. In addition, some amount of address space is reserved for WOW64 itself and the data structures it uses. The amount reserved depends on the processor; more is reserved on the Intel Itanium than on the x64 processor.

3
  • +0. What are these limitations? Please edit your answer and explain. Mar 20, 2017 at 1:23
  • Digging for zombies, are we? This answer is almost six years old, y'know... Mar 21, 2017 at 14:55
  • +1. Thanks for your edit! I tried posting a newer variant of the question, but it got closed as "too broad". As far as I know, all open versions of this question, everywhere on Super User, are at least six years old. Mar 21, 2017 at 15:31
1

Lets not cut this short. 64-bit rocks. If you can get it, use it. Visual Studio, SQL Server (even just using just Management Studio) all benefit from a 64-bit running version. You can't say that it's not worth it. No it's not a necessity but we should be looking to improve speed on developer and other user's (even non-techies who use simple MS Word) notebooks and laptops. Why not take advantage and promote and talk up 64-bit at your company? It's really not that new anymore...it's becoming or has been commonplace.

It's ridiculous to say you don't benefit much from 64-bit just like it's ridiculous to tell me that adding 4 gigs to complete a total of 8 gigs on any laptop, any user is not worth it. That's just another example of greedy IT Network admins or corporations where upgrading to a 64-bit is typically free in most instances and then for the RAM it's ridiculously cheap and improves productivity of your user two fold.

So no it's not a must but should be a must. I don't like minimalists when it comes to tools such as desktops and laptops.

I really don't agree when people say 64-bit apps are something you still have to be super "careful" with...at least not as much as when it first came out, that's for sure.

If 64-bit was such a problem then most desktops and laptops these days wouldn't be migrating to 64-bit Win 7. Our entire company is pushing out Win 7 Pro 64-bit to ALL users (over 100,00 employees)

2
  • It would be helpful if you could explain specifically what "rocks" about 64-bit. A technical explanation is what is sought here. Aug 8, 2015 at 15:14
  • So adding 4gigs to a machine that never occupied more memory than before makes sense? Ok, if you know that you would use it if it's availble, but else this is just unnecessary. This has nothing to do with greediness but just that you can invest in things that might make more sense. Upgrading the CPU will in almost any case bring advantages. Not saying that much RAM is a bad thing (I have myself 16GB) but I would not upgrade my old laptop to 8GB as the 4GB hold my Arch installation really well! 64bit, though, is sth. that really in most cases is pf advantage, that's right
    – ljrk
    Aug 8, 2015 at 21:36
0

It depends entirely on the application. Most applications are operate exactly the same in 32 bit form as in 64 bit form. For the applications where it does matter, you'll almost certainly be aware that the 32 bit versions are limited and wouldn't need to ask the question.

One area to be careful of is when an application has a 64 bit version that has poor 3rd party support. I'm thinking of Excel 2010 which is available in 64 bit form. Excel 64 itself works perfectly well, but few 3rd party extensions and add-ons have been ported yet. As another example, consider Python on Windows. Again, a number of important non-core modules are not available or hard to obtain in 64 bit form.

So, unless you really desperately need 64 bit for the application in question, you can often be safer sticking with the 32 bit version.

You must log in to answer this question.

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