【问题标题】:32 bit applications on 64 bit OS ( windows )64 位操作系统 (windows) 上的 32 位应用程序
【发布时间】:2011-09-02 06:14:38
【问题描述】:

我需要一些帮助来了解 32 位应用程序如何在 64 位操作系统上使用内存。

32 位应用程序可以在 64 位操作系统上使用 2 GB 内存,对吗? 这是否意味着并行运行的 3 个 32 位应用程序可以寻址 6 GB 内存... 或者3个32位应用程序必须共享操作系统拥有的2-4 GB 32位内存?

同样,如果我有一个编译为 32 位的 Web 服务,在 64 位机器上的 IIS 下运行。只要对该 web 服务的单个请求始终保持在 2gb 的内存使用量以下,重新编译到 64 位有什么意义吗?我的理论是 IIS 为每个请求创建一个新进程,因此整个进程池将能够利用 64 位机器拥有的所有内存,8 或 15 或 20 gig 或其他。

告诉我你的想法,谢谢

【问题讨论】:

  • 既然已经有了一个很好的答案,只需要注释:是的,编译 32 位代码意味着应用程序可用的地址空间(理论上)限制为 4GB(Windows 上为 2GB,除非您启用 @987654321 @)。应用程序地址空间可以位于 8 或 15 或 20 gig 内存中的任何位置。因此,多个进程可以共存,每个进程都有自己的 2GB 地址空间。

标签: windows iis 64-bit 32bit-64bit


【解决方案1】:

是的,所有 32 位程序的总使用量可以超过 2 GB。所以是的,你可以拥有一堆 32 位进程,使用 64 位机器中的所有内存。

实际上,有一个编译器选项可以让 32 位程序在 Windows 中最多使用 3GB。 如果性能不重要,那么没有太多理由使用 64 位。

【讨论】:

  • 在 64 位操作系统上为 4GB。在 32 位操作系统上,总使用量也很容易超过 2 或 4GB。缺少的成分是虚拟内存。
猜你喜欢
  • 2011-07-07
  • 2012-09-01
  • 2014-07-05
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 2015-08-11
  • 2010-11-07
相关资源
最近更新 更多