我应该提供我的应用程序的x64版本吗?

Sql*_*yan 10 windows 64-bit 32bit-64bit

也许我在这里错过了x64平台的一个主要观点,但我的看法是,当大量内存,大指针或其他要求苛刻的时候,x64应用程序只比x86版本(在x64操作系统和硬件上)表现更好.涉及的因素.

但是,除了标准的x86版本之外,我已经开始注意到一些较小的应用程序提供x64版本的安装程序.由于x86在使用WoW的Windows x64上运行得很好,我发布我的应用程序的x64编译版本有什么好处吗?照我看来:

优点:

  • 可能性能更高(但在什么条件下)

缺点:

  • 用于创建/支持的附加构建
  • x64目标中可能存在的错误,这些错误在x86目标中不存在
  • 依赖于x64版本的供应商/操作系统DLL,需要不同的安装清单并引入其他故障排除复杂性

有什么令人信服的理由导致我重新考虑添加我的应用程序的x64编译版本?

tgi*_*hil 4

编译和调试 x64 版本的另一个潜在原因是它可能会暴露 x86 版本中隐藏的错误。例如,这可能会暴露 32 位整数和(现在)64 位指针之间的不正确转换。这也使您将来能够支持 x64。

但是,除非您的应用程序受益于 64 位整数、额外的 CPU 寄存器、更大的内存空间(超过 3.5Gb)或实现设备驱动程序,否则保留 32 位应用程序就可以了。所有主要操作系统都支持同时运行 x32 和 x64 应用程序,因此不会大力推动仅 64 位应用程序。

顺便提一句。基于 .NET 的应用程序会自动受益于在 64 位系统上执行,无需更改任何代码。无需额外测试。

  • 请注意,.NET 应用程序的“自动优势”仅在您针对 AnyCPU(即 MSIL)进行编译时才会发挥作用,并且仅在您不使用互操作时才发挥作用。如果您在 32 位上进行开发,针对 AnyCPU 进行编译,并使用 32 位互操作,那么在您在 64 位上运行之前,一切都运行良好,因此“无需额外测试”实际上取决于所讨论的应用程序。 (3认同)