Most PC’s shipping these days are rocking 64-bit versions of Windows 8.0 or 8.1. If you’re not sure how to check which bit architecture you have (32-bit or 64-bit) in Windows, there’s a quick command line trick for that.
Today I want to show you something peculiar that you may not have noticed but once I bring it up you’ll certainly have questions.
Assuming you’re rocking a 64-bit OS, kick open the Task Manager and look in the process list.
In the Process tab you should see a few processes with the (32 bit) prefix tacked on the end.
- What’s up with that?
- Why isn’t your 64-bit PC running all your application in 64-bit mode?
- It seems like you’re not getting the most performance from your system right?
There are a myriad of benefits from running a 64-bit version of Windows such as better memory usage and tighter security so why are some of your applications failing to take advantage of that?
Good question. Let me attempt to explain what’s going on here:
A Plethora of Program Files
Windows usually segregates 32-bit applications from 64-bit applications. For example, in a Windows 8.1 64-bit computer, the 64-bit apps are installed in “C:\Program Files” but their 32-bit cousins hang out in “C:\Program Files (x86)”. There are lots of reasons for this but the short non-technical answer is that having both folders make the system backwards compatible. It’s a way to make it easy to run 32-bit software on a 64-bit operating system.
I want you to do a little experiment with me.
Press Windows Key + e to open Windows Explorer then open both Program Files and Program Files (x86) and compare the item count in the status bar at the base of each window.
In the graphic below you can see I have more 32-bit programs than 64-bit programs because the item count in Program Files (x86) on the right is 48 which is slightly more than the item count in the regular Program Files folder on the left.
This is actually pretty normal.
You can run almost any 32-bit program in a 64-bit environment without a performance penalty.
Notice I qualified that last sentence with almost because some 32-bit antivirus programs will categorically refuse to run on a 64-bit OS. In that case, you’ll need to supplant the 32-bit version of the antivirus program with its 64-bit counterpart. Also, 32-bit device drivers won’t work on a 64-bit OS. But these are the exceptions of-course. Most 32-bit applications are 100% compatible with their 64-bit peers and will run without complaining.
But how is this possible?
Through a process called Windows on Windows, Microsoft implements a compatibility layer between the two bit architectures. It gets pretty technical here but the synopsis is that every 64-bit version of Windows includes an emulator called WoW64 (Windows 32-bit on Windows 64-bit) which is responsible for translating the differences between 32-bit and 64-bit applications. It’s just an emulator that passes 32-bit applications through to the OS.
There is no performance penalty because WoW64 actually lets 32-bit application enjoy all the benefits of the 64-bit kernel. If you’re really curious about how this works you should check out the technical whitepaper titled “Performance and Memory Consumption Under WOW64” on the Microsoft Developer Network.
In most cases; there’s not really a good reason for a developer to go through the extra work of crafting a 64-bit version of the program. Since legacy 32-bit apps run fine in 64-bit OS there’s little pay off for designing a specific 64-bit version. The bottom line is that most applications don’t need access to more than the 32 bits of addressing space provided by 32-bit apps.
Incidentally, by 32-bits I mean raising the number 2 to the 32nd power. 32-bits give us a total of about 4 gigabytes of addressable memory and most applications simple don’t need that much.
But this doesn’t apply to all programs.
For example, the big guys with voracious memory appetites such as AutoCad 2015 and Adobe Premiere Pro CC 2014 get the most palpable benefit from using 64-bit of addressable memory. Thus it makes since to install the 64-bit versions of the big guys on a 64-bit OS but the majority of applications won’t see a performance bump greater than 30%.
The Bottom Line
Creating 64-bit versions of software simply isn’t a viable option in most cases. It requires time and testing. Furthermore, since most 32-bit applications run perfectly well on 64-bit OSes (thanks to WoW64) it doesn’t make sense to make a separate 64-bit app just to squeeze out a 30% performance gain that’s not even guaranteed to happen.
So what should you do?
If a program you want offers a 32-bit version (also called x86) or a 64-bit versions (x64) grab the 64-bit version but don’t feel bad about going 32-bit. Ultimately, for most non-heavy-weight applications such as iTunes and Adobe Flash Player, the website automatically detects the bit architecture of your computer and only displays the relevant setup file for you.
So don’t worry about it…
I hope that helps to clear up some of the confusion here! As always feel free to rail me, call me names and say I don’t know what I’m talking about in the comments hahaha.
I love you guys. And thanks for reading my site. Consider joining my team too. In the right rail you can drop in your email address to get exclusive (and original) content from me that I don’t give to my non-members. It’s 100% free so go for it!