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

标签 c++ .net windows memory

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

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

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

最佳答案

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

但即使这些数字也不一定是最大值(至少理论上是这样),因为您还可以使用其他技巧(例如使用物理地址扩展在 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.

关于c++ - 64 位 Windows 上应用程序可用的最大内存是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723204/

相关文章:

windows - 我是否需要 PATH 中的 Perl bin 目录来运行 perl 程序(在 Windows 上)?

c++ - std::sort 无法对 std::vector<std::string> 的元素进行排序

c# - 如何为 DataGridComboBoxColumn WPF 绑定(bind)数组

c# - 如何取消 Microsoft ServiceBus MessageReceiver Receive 调用?

c# - Entity Framework 返回空集

.net - 非 COM、非 .NET DLL 的正确名称?

c++ - 使用 Boost.Fusion 函数列表

c++ - OpenGL 项目返回 undefined reference

c++ - 如何优化C++二进制文件读取?

c++ - 关闭 LoadLibrary 打开的 DLL 文件句柄