【问题标题】:What is the maximum memory available to an application on 64-bit Windows64 位 Windows 上的应用程序可用的最大内存是多少
【发布时间】:2012-09-25 05:59:08
【问题描述】:

我一直从我的用户那里收到这个问题,不幸的是我没有找到关于 x64 的好链接(x86 是一个不同的故事)。

64 位 Windows 上的应用程序可用的最大内存是多少:

  1. C++ 应用程序
  2. .Net 应用程序
  3. .Net 应用程序使用 C++ 库
  4. 应用程序正在Windows 2008/2012 服务器上运行
  5. 应用程序正在 Windows 7/8 上运行

【问题讨论】:

标签: c++ .net windows memory


【解决方案1】:

如果地址被认为是无符号的,那么总量将在理论上超过 18 quintillion(2^64 或 180 亿)字节或 180 亿 GB。如果您限制自己并考虑一个有符号的 64 位整数,那么您将看到其中的一半。哦,别忘了减去将为硬件保留的内存,例如显存、总线地址空间等。

但即使这些数字也不一定是最大值(至少理论上是这样),因为您还可以使用其他技巧(例如使用物理地址扩展在 32 位上使用超过 2 GB 的空间)。

因此,简而言之:64 位允许您处理和使用您的钱可以买到的所有内存。

不幸的是,硬件和软件限制很可能要低得多,例如主板可用的最大内存量(取决于主板的使用年限,现在通常是 8 或 16 GB,有时是 32国标)。 Judging by Windows itself, the maximum amount can vary greatly, based on your architecture and version you're running.

【讨论】:

  • 谢谢,你给我的链接就是我找到的那个。说实话,我希望微软有一些额外的限制。
  • 没有更多限制的真正理由(除了提到的那些)。旧的 32 位程序限制为 2 GB 而不是 4 GB(正如您对 32 位地址空间所料)的问题是它们最初使用有符号整数的遗留问题。
  • 好吧,如果你检查链接,你会知道任何 Windows 系统可用的最大内存量是 2Tb,远低于理论最大值。
猜你喜欢
  • 2011-08-06
  • 2013-08-18
  • 2015-05-22
  • 1970-01-01
  • 2012-08-08
  • 2010-09-27
  • 2011-01-21
相关资源
最近更新 更多