编写基于x64的应用程序。真的有什么意义吗?

时间:2010-11-17 15:50:14

标签: language-agnostic 64-bit 32bit-64bit

显然,它可能比32位有一些(或很多)优势,我显然不知道。那么,他们是什么?

我只是不明白,X64 PC上仍然不支持很多东西。例如,在Internet Explorer 8和9上,64位版本不支持Flash,当我设法让它工作时,然后UN工作,然后会显示一条消息,告诉我64位IE目前没有支持Flash或Flash在64位浏览器上不可用。

我现在有一台带有Windows 7的64位个人电脑,我仍在编写32位应用程序,它们都能完美运行(减去这里的一些错误,无论你使用的是32 / 64-位)。为什么要为64位系统开发?我不知道他们有什么不同,如果我要了解更多有关64位开发的信息,你会建议我从哪里开始?

3 个答案:

答案 0 :(得分:1)

这取决于你在做什么。

如果你正在编写一个不与其他任何东西交谈的独立应用程序,不需要大量的内存,也不会从x64提供的额外寄存器中受益,那么你就不会得到太多(除了膨胀的结构大小:))从制作x64版本。

OTOH,对于在进程中运行的代码,x64有点病毒。 shell本身现在是64位,所以如果你想插入它,你也必须是64位。 (或者至少提供一个可以与64位世界通信的适配器。)因此,将所有内容编译为64位通常更容易,因此您不必在两个世界之间编组调用麻烦。

(当然,仍然有32位操作系统的32位版本。)

编辑:忘了说,如果你想要呈现一台机器的“真实”视图,它对于定位x64也很有用。出于兼容性原因,64位Windows“涉及”各种事物的32位进程。您可以禁用/绕过谎言,但这样做不会破坏(例如第三方DLL)可能会很棘手,最好避免使用。

答案 1 :(得分:1)

64位应用程序最常见的原因是可以访问更多内存。数据库服务器,一个明显的例子,当他们使用的大多数(或所有)数据在内存中可用而不是存储在磁盘上时,可以获得极大的好处。

您还可以获得额外的速度,特别是对于浮点密集型应用程序(我已经看到相当常规的3倍加速,但它也在某种程度上取决于CPU)。

然而,其他一些应用程序通过转移到64位来获得很少甚至损失一些。 CPU仍然具有与内存相同的带宽,但是所有指针的大小都是双倍的,所以如果你大量使用指针,可以最终导致净损失。

答案 2 :(得分:0)

64位软件可直接处理超过4GB的内存(实际上限制为~3GB),它使用现代CPU上可用的附加硬件(额外寄存器等),从而提高性能。这是迁移到64位的两个主要原因。

通常,您将开发跨平台软件,您的编译器将负责使用所有64位功能。