截至目前,32 位 Windows 安装有多普遍?

How common are 32-bit Windows installations as of now?

我注意到许多程序仍然以 32 位二进制文​​件发布,甚至只有 32 位二进制文​​件。 32 位系统有多普遍?即,有多少 32 位系统和 64 位系统?

这对于帮助决定是否继续提供 32 位版本的软件很重要。

除非您的应用程序确实需要 2GiB of memory space,或者从更快的新 x64 操作中获得显着优势,否则没有必要放弃构建 32 位 x86,因为 x64 的 100% backwards-compatibility(但 16 位 x86 完全是另一回事)- 理想情况下,使用一个可以 运行 任何地方(至少所有 Windows 安装任何地方)的可执行文件让用户的事情变得更简单.

您问题的答案因目标用户群而异:

  • 编写供内部使用的商业软件的人将(或应该)确切地知道他们针对的是什么硬件。
  • 如果您正在编写游戏,请查看 regularly-updated Steam 硬件调查 - http://store.steampowered.com/hwsurvey/ -(截至 2017 年 12 月 6 日)报告 97.9% 的用户是 运行宁一个 64 位构建的 Windows - 在 32 位 Windows 上只给出 2.1%,尽管它没有说明 32 位 Windows 用户的实际百分比运行ning 在支持 x64 的硬件上。但是 Steam 上的游戏玩家往往属于“计算机爱好者”部分,他们会 运行 更新的硬件,因此 64 位硬件的使用和 OS 安装并不能代表各地的所有计算机用户。
  • 如果您正在编写 general-purpose 用于从您自己的网站分发的软件,那么请查看您的网络服务器日志文件,因为 User-Agent header 通常会告诉您什么 OS 人们使用的文本字符串通常包含 CPU 架构(例如 Chrome 报告 Win64; x64)。
  • 64 位 OS 系统的用户比例也会因地域而异 - 我预计“新兴市场”中 32 位 OS 用户的比例会更高,使用范围更广比更发达的经济体更旧(尤其是进口 second-hand)机器。同样,与遗留软件密切相关的细分市场,例如政府部门和许多企业,将 运行 32 位 Windows OS 以保留 16 位软件兼容性或 32-bit-only 设备 driver 支持。

在分发可执行文件时,您可以同时使用 32 位或 64 位:虽然 Windows PE 可执行文件(.exe.dll 文件)不幸的是没有 macOS 的“胖二进制”功能(单个可执行文件可以包含针对不同体系结构的指令)你实际上可以 fake a fat-binary 在 Windows 上使用 Sysinternals 实用程序所使用的解决方法;这是一个包含 64 位二进制文​​件作为嵌入式资源的 32 位可执行文件,并且 运行s 像这样:

  1. 这是 32 位 OS 吗?如果是这样,那么 运行 正常
  2. 否则在64位系统上是32位进程,所以解压64位.exe版本到临时目录
  3. 启动提取的64位版本
  4. Self-terminate