在64位Windows上安装32位或64位应用程序有什么区别?

问题描述:

显然,您可以在64位Windows系统(Vista或7)上安装32位和64位编译应用程序。在64位Windows上安装32位或64位应用程序有什么区别?

什么就是为什么这两个版本都能够在64位操作系统上运行的原因是什么?在64位操作系统上安装64位应用程序是否是好习惯?将32位应用程序与64位操作系统相结合的优点/缺点?

谢谢!

什么就是为什么这两个版本都能够在64位操作系统上运行的原因是什么?

如果操作系统无法运行任何旧的(32位)应用程序,则没有人会希望使用它。所以他们必须找到一条路。

在64位操作系统上安装64位应用程序是不是很好的做法?

一般来说,他们可以使用更多的内存,并可能运行速度稍快。但是,64位应用程序无法调用32位DLL,因此您可能会遇到问题。

将32位应用程序与64位操作系统相结合的优点/缺点?

不是真的,当然除了他们将不能够使用超过4GB RAM以上,且有可能会比他们会在同一硬件上一个32位操作系统慢一点的。

+0

谢谢Michael!因此,例如,如果您的计算机上安装了64位版本的Outlook,并且它将从我的(32位)应用程序读取32位DLL,那么它可能会引发一些错误...?另外,编译要安装在64位系统上的应用程序时,是否也会编译所有要编译为64位的DLL? – Andrei 2010-11-02 13:17:55

+2

@Andrei:是的,那是行不通的。您不能在同一个操作系统进程中混用64位和32位代码。所以,如果你为64位操作系统编译你的应用程序,你也必须为DLL做这些工作,我希望IDE能够做到这一点。 – 2010-11-02 13:23:30

+0

如果您安装了32位版本的Outlook,并且您的应用程序使用了64位编译的DLL,它会是同样的问题吗? – Andrei 2010-11-02 13:31:40

根据实际的实施情况,32位应用程序需要一些特殊处理才能在64位操作系统上运行,而64位应用程序将在64位操作系统上“原生”运行,因此应该运行“更好”(对于“更好”的各种值 - 例如访问更多内存)。这种“特殊处理”可能只是运行指令集的一个子集,但它需要编组等

所以它是有意义的安装程序,其中一个是可用的64位版本。

然而,它使商业意义,让32位程序运行的,我们还有更多的32位应用程序比64位的在那里。随着时间的推移,仍在销售的应用程序将会升级,并且可能会有一段时间,Windows的未来版本不支持32位程序(与16位版本的版本相同)。

+0

@Marcelo - 好吧,“模拟”是一个不好的名词。我会看看我能不能找出更好的东西。 – ChrisF 2010-11-02 13:11:21

并非每个程序都可用于64位版本。

是的,你一般应该在可能的情况下使用64位应用程序。

结合32位和64位应用程序是一种痛苦,而且从来都不是一个好主意。这通常只能由必要性来完成(回到我的第一点)。

+0

@ 0xA3:该声明的真相随时间而改变。根据您自己的经验,您当然可能会不同意,但现在我发现几乎没有什么理由支持32位版本的应用程序,该应用程序也可用于64位版本。 – 2010-11-02 13:14:48

+0

除了兼容性和可能的​​迁移成本之外,我看到的主要原因是64位应用程序需要更多内存来存储相同数量的数据,这是由于增加了指针大小和不同的对齐/填充。这可能会对处理器缓存利用率产生影响,请参阅http://en.wikipedia.org/wiki/64-bit#Pros_and_cons。所以我的观点是,这取决于您的应用程序,64位实际上是否有意义。 – 2010-11-02 13:34:31

+0

@ 0xA3:对于大多数应用程序类型,附加内存可以忽略不计。我只能重申我的最后一点:这几天,它几乎从不重要。 – 2010-11-02 21:08:40

的Windows的64位版本都与Windows在Windows 64(WOW64)子系统,允许它运行32位应用程序。整个过程其实是相当复杂的,你可以读到它:

How Windows 7/Vista 64 Support 32 Bit Applications

如果你有一个64位操作系统和应用程序供应商提供了一个64位版本,安装它。如果没有,安装32位版本不会受到影响。

在同一台机器上能够组合32位和64位应用程序是非常有利的,因为并非所有供应商都提供其应用程序的64位版本。一个允许你同时运行的操作系统将允许你访问消费者可用的更广泛的软件。如64使用arhitecture

现代处理器都可以执行32位和64位应用程序。 (2^32 = 4294967296),而64位的操作系统可以分配更多(2^64 = 18446744073709551616)。

在64位操作系统上安装64位应用程序是一种很好的做法,因为如果您拥有超过4GB的内存,它们将能够使用所有计算机的内存。