【发布时间】: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