在64位OS上拥有64位程序有多重要?


40

我最近从旧的32位版本升级到了64位OS(Windows 7)。我注意到,虽然有一些64位应用程序可用(例如DC客户端,Tortoise SVN,图形驱动程序),但许多仍然是32位应用程序(例如firefox,adobe reader)。

那么,拥有64位应用程序(在性能方面)有多重要?我将笔记本电脑用于许多不同的事情,例如游戏,编码等。


1
只需等到您开始想使用16位安装程序玩自己喜欢的旧游戏。XP64 / 32,Vista32和7 32中提供了向后兼容性,但Vista64或7 64中没有向后兼容性。–
Alain

1
@Alain:无论如何,我始终无法在32位操作系统上运行旧游戏,因此损失可能不是很大。
apoorv020 2011年

1
如果您像我一样喜欢Orion II大师和Populous the Beginning,无论如何;)无论如何,Windows Virtual PC +旧的OS安装CD可以解决问题,并使您免于双重引导。
Alain

从用户角度看,我注意到的最大改进是能够加载大于2GB容量的文件。特别是在Adobe软件中处理大图像。
2013年

@Alain,因为各种VM软件对旧OS的音频/视频驱动程序支持程度各不相同,即使这样并不总是可行。我很难过要运行Oracle II珠宝
Synetech

Answers:


35

我认为本身拥有64位应用程序并不重要。

拥有64位应用程序的优点是它可以:

  • 访问更多的内存¹
  • 执行64位寄存器操作。²

¹64位程序可能会更快一些(取决于它的工作方式)。如果您的应用程序内存不足(例如Photoshop,3D渲染等),则拥有64位版本将使它可以访问所有计算机内存。没有它,它将限制在2GB左右。这是基于每个应用程序的,因此两个应用程序可以访问总共4GB。

²在64位操作系统上执行64位操作比在32位操作系统上执行操作要快-至少需要2个32位操作才能执行相同的操作。

在稳定性方面,64位和32位应用程序应该没有区别。


我认为我的DC客户端现在确实以大大提高的速度进行文件哈希处理。
apoorv020 2011年

如果它正在散列,那是有道理的。其中一些可以在更高的位宽上进行优化。
Joshua Nurczyk 2011年

还可以通过x86-64来假设CPU的功能,例如支持SSE3。
afrazier 2011年

4
默认情况下,在32位Windows上运行的应用程序只能访问2GB的内存。整个操作系统总共可以访问3GB以上的空间,以供所有应用程序共享。
迈克尔·斯蒂尔

@迈克尔·斯蒂尔是对的。为最大的可用内存,系统通常是3.12GB,其余被保留用于寻址硬件。有关更详细的帐户,请参见:support.microsoft.com/kb/929605
Steven Evers

10

在64位操作系统上使用64位应用程序的最大好处是,您可以完全访问系统上的所有可用内存。使用64位内存地址,应用程序可以访问的内存超过其32位等效地址。

另外,由于使用本地系统体系结构,因此64位程序比32位程序“更好”地工作。诸如内存读取之类的操作是在本地执行的。这意味着OS不必执行应用程序正在使用的命令“翻译”(内存的打包/拆包等)工作。

但是,大多数程序-例如Firefox,Word,Adobe Reader等-大部分时间都在等待用户输入,因此效率不一定是首要问题。同样,目前大多数这些应用程序都不需要额外的内存,而转到64位将使他们能够访问它们。

诸如图形驱动程序之类的程序确实必须高效运行,并且可能可以访问更高的内存寄存器,因此需要为64位。


1
如果系统驱动程序需要访问某些内存寄存器,则在许多情况下要求它们为64位。我相信certan可以在64位系统上使用32位驱动程序,但是没有像图形卡那样密集的内容
Joshua Nurczyk 2011年

1
@Joshua:系统驱动程序确实取决于操作系统和机器架构。一些64位CPU没有模式,只是添加了64位指令。x86_64具有昂贵的模式切换,可以从64切换到32,然后再切换回32,因此几乎总是需要驱动程序为64位。
Zan Lynx

请解释您的工作“更好”的意思。
glenviewjeff 2015年

5

是的,您可以毫无问题地运行64位操作系统BUT上的32位应用程序。浪费空间还有另一个问题-库。基本上,应用程序会加载所需的适当库,但问题是64位库与32位库不兼容,反之亦然。

当然,通常所需的库通常随应用程序一起提供,但是核心库(Windows库)被存储两次-其中一个-32位,另一个-64位。

如果您同时运行一个32位应用程序和另一个64位应用程序,它们还将在RAM上占用更多的内存-这两个应用程序加载了自己的库版本,因此与使用相同库的情况相比,它们使用的内存更多。

因此,为了节省RAM和硬盘空间-尝试运行和安装仅64位的应用程序,并仅在找不到64位版本时才安装32位的应用程序。现在,两种版本都提供了越来越多的应用程序。


4

答案是“取决于”

某些32位“应用程序”在64位模式下不起作用,例如图形驱动程序和外壳扩展(例如Tortoise SVN)。在这种情况下,您需要64位版本。

对于其他普通应用程序,则取决于它们的功能。

例如,如果您刚好有16GB的内存,并且正在使用具有极大数据库的SQL Server运行,那么拥有64位版本的SQL非常重要。

但是,如果您有4Gb内存(视频卡“偷走”了将近1gb),则可能是内存不足,使用64位应用程序(可能需要更多内存)实际上可能会降低系统速度。

即使不考虑内存问题,您也无法确定以64位模式运行的32位应用程序会比与之等效的64位更快或更慢,也不能肯定该应用程序是否比在32位模式下运行时更快或更慢。位操作系统。

就个人而言,如果我正在寻找机器的实用程序或小型应用程序,我将检查其是否适用于64位操作系统,但是该应用程序是32位还是64位通常不在我的优先级列表上。

根据Process Explorer的数据,我目前有25个64位进程和28个32位进程在运行,而忽略了Chrome)


3

请记住,在64位Windows上,正在通过称为WOW64的仿真层执行32位应用程序,这确实施加了一些其他限制,这些限制在32位Windows OS下运行时不存在。

https://msdn.microsoft.com/zh-cn/library/aa384219(v=vs.85).aspx

WOW64下的性能和内存消耗

  • 处理器硬件。指令仿真在芯片上执行。在x64处理器上,指令由微体系结构本地执行。因此,在x64上的WOW64下的执行速度类似于在32位Windows下的执行速度。在Intel Itanium处理器上,更多软件参与了仿真,结果导致性能下降。
  • API重载开销。与NT内核调用本身相比,此开销很小。NT内核函数旨在不经常被调用。
  • 虚拟内存大小。在Intel Itanium处理器上,如果同一32位应用程序的两个或多个实例同时运行,则WOW64会增加大量开销。这归因于Intel Itanium上的本机8 KB页面,这使x86体系结构上本机4 KB页面的仿真变得复杂(更多页面被标记为可写;所有可写页面是该过程专用的)。这可能会对某些处理器上的终端服务的可伸缩性产生不利影响。x64处理器不是这种情况。
  • 工作集。WOW64增加了应用程序工作集的大小。

  • WOW64使32位应用程序可以利用64位内核。因此,32位应用程序可以使用大量的内核句柄和窗口句柄。但是,32位应用程序可能无法在基于x86的系统上本地运行时在WOW64下创建尽可能多的线程,因为WOW64为每个线程分配了一个额外的64位堆栈(通常为512 KB)。另外,为WOW64本身及其使用的数据结构保留了一些地址空间。保留的数量取决于处理器。与x64处理器相比,Intel Itanium上保留的资源更多。


+0。这些限制是什么?请编辑您的答案并解释。
令人难忘的

挖僵尸,是吗?您知道这个答案已经快六岁了吗
Adam Lawrence

+1。感谢您的编辑!我尝试发布该问题的新变体,但由于“范围太广”而被关闭。据我所知,在超级用户上到处都有该问题的所有开放版本都至少有六年的历史。
unforgettableid

1

让我们不要这么短。64位岩石。如果可以得到,请使用它。Visual Studio,SQL Server(甚至仅使用Management Studio)都可以从64位运行版本中受益。您不能说这不值得。不,这不是必须的,但我们应该寻求提高开发人员和其他用户(甚至是使用简单MS Word的非技术人员)笔记本电脑和笔记本电脑的速度。为什么不利用您的优势,在您的公司推广和谈论64位?真的不再是新事物了……它已经成为或已经变得司空见惯了。

荒谬的是,您不能从64位中受益太多,就像告诉我在任何一台笔记本电脑上添加4个演出来完成总共8个演出是荒谬的,任何用户都不值得。这只是贪婪的IT网络管理员或公司的又一个例子,在大多数情况下,升级到64位通常是免费的,然后对于RAM来说,价格便宜得可笑,并且可以将用户的生产力提高两倍。

所以不,这不是必须的,但应该是必须的。在台式机和笔记本电脑等工具方面,我不喜欢极简主义者。

我真的不同意当人们说64位应用程序仍然是您必须非常“谨慎”的事情……至少可以肯定,它不比最初发布时多。

如果是64位的问题,那么如今大多数台式机和笔记本电脑都不会迁移到64位的Win7。我们整个公司都在向所有用户(超过100,000名员工)推出Win 7 Pro 64位


如果您可以具体解释一下64位的“问题”,那将很有帮助。在这里寻求技术解释。
glenviewjeff 2015年

因此,将4gigs添加到从未占用更多内存的计算机上是否有意义?好的,如果您知道将在可用的情况下使用它,但这只是不必要的。这与贪婪无关,而只是您可以投资于可能更有意义的事情。几乎在任何情况下,升级CPU都会带来好处。不要说太多的内存是一件坏事(我自己有16GB),但是我不会将旧笔记本电脑升级到8GB,因为4GB可以很好地安装我的Arch!不过,64位是……。在大多数情况下,这确实是pf优势,这是对的
larkey

0

这完全取决于应用程序。大多数应用程序以32位形式和64位形式完全相同地运行。对于真正重要的应用程序,您几乎可以肯定会意识到32位版本是受限制的,不需要提出问题。

需要注意的一个方面是,当应用程序的64位版本的第三方支持较差时。我正在考虑以64位格式提供的Excel 2010。Excel 64本身可以很好地运行,但是尚未移植第三者扩展和附加组件。再举一个例子,考虑Windows上的Python。同样,许多重要的非核心模块不可用或很难以64位形式获得。

因此,除非您真的非常需要相关应用程序的64位,否则使用32位版本通常会更安全。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.