I've noticed many programs are still released with 32-bit binaries or even only a 32-bit binary. How common are 32-bit systems? i.e., how many 32-bit vs. 64-bit systems are out there?
This is important to help decide whether to continue shipping 32-bit versions of software.
If you're writing games then take a look at the regularly-updated Steam Hardware Survey - http://store.steampowered.com/hwsurvey/ - which (as of 2017-12-06) reports 97.9% of users are running a 64-bit build of Windows - giving only 2.1% on 32-bit Windows, though it doesn't say what percentage of 32-bit Windows users ...
Today, just 1.93 percent of all Steam Hardware Survey respondents are using 32-bit OSes. In July 2017, that figure was 6.09 percent. Chances are good that at least some of those 6 percent of users are still using 32-bit operating systems — they're just not captured any more in the larger data set.
According to the minimum hardware requirements for Windows 10 page, beginning with the release of the May 2020 update, Microsoft will no longer offer 32-bit builds for computer manufacturers, and all the new devices will be required to run the 64-bit version of Windows 10.
Many applications still use the 32-bit operating system because its design has been on the market for a long time. However, that's changing on some platforms. Some developers have found a solution; on Modern 64-bit systems, you can run both 32- and 64-bit software.
Unless your application really needs more than 2GiB of memory space, or gains a significant benefit from the new and faster x64 operations, there's no need to move away from building for 32-bit x86, given x64's 100% backwards-compatibility (but 16-bit x86 is a different matter entirely) - ideally keep things simpler for your users with a single executable file which can run anywhere (at least on all Windows installs anywhere).
The answer to your question varies depending on the target user base:
User-Agent
header often tells you what OS people are using with a text string that often includes the CPU architecture (e.g. Chrome reports Win64; x64
).Rather than making a commitment to either 32-bit or 64-bit when it comes to distributing your executable, you can do both: While Windows PE executables (.exe
and .dll
files) unfortunately do not have the "fat binary" feature that macOS does (where a single executable can contain instructions for different architectures) you can actually fake a fat-binary using a workaround on Windows, as used by Sysinternals' utility programs; which is to have a 32-bit executable that contains the 64-bit binary as an embedded resource, and runs like so:
.exe
version to a temporary directoryIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With