为什么 Windows 7 x64 不能使用所有安装的内存?

为什么 Windows 7 x64 不能使用所有安装的内存?

我在 Dell Latitude D520(4GB 内存)上运行 Windows 7 x64 RTM。系统控制面板报告:

系统类型:64位操作系统
安装内存:4.00 GB(3.24可用)

为什么不是所有内存都可用?由于我运行的是 64 位系统,这是戴尔的限制吗?


编辑:

它给了我更多问题:

  1. 如果系统报告我可以使用 3.24GB,这是否意味着显卡使用了 760MB?这似乎很多,而且这一页声明它将使用最多 128MB)
  2. 如果 760MB 没有被视频使用,那是不是就被浪费了?
  3. 运行 64 位 Windows 对我有帮助吗?如果没有,64 位 Windows 还有其他优势吗?

答案1

要么你按照帖子#1 的建议去做,要么你的主板根本不支持内存地址映射,这意味着:此硬件不能为你提供 4GB 的内存。

答案2

这可能有两个原因。

  • Memory Remapping您需要在 BIOS 中打开
  • 您的视频卡可能正在共享内部内存。

通常情况是后者。这是 Windows 7 的计划功能之一,您可以阅读它这里

答案3

这也可能是 Windows 的限制。不过如果我没记错的话,预发布版本通常不会有这种情况。

答案4

这是芯片组/视频卡/设备驱动程序的限制。Windows(或在某些情况下,BIOS)将内存映射到视频卡以供使用,因为它没有自己的内存。Windows 不能随心所欲地使用它,因为这会违反合理的原则。微软曾考虑过根据使用情况映射和重新映射 4GB 以上内存。问题是,这会导致消费者系统极不稳定。请注意,即使在 x86 机器上,Windows Server 也不会受到 4GB 限制的影响……

http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx#physical_memory_limits_windows_server_2003

原因还是设备驱动程序。服务器市场往往拥有较小的设备驱动程序和 DD 开发人员市场,因此可以测试和支持更大的地址空间。从消费者的角度来看,这是一场噩梦。从技术上讲,XP SP2 及以上 x86 操作系统可以使用超过 4GB 的内存地址。但并非所有设备驱动程序都支持这一点,因为超过 4GB 意味着指针更长。因此 DD 经常会吐出错误,从而导致蓝屏甚至无法启动。

重新映射视频内存的另一个后果是视频卡延迟敏感将内存重新映射回卡涉及以下步骤:

  1. 将那里的所有内容移动到页面文件...(旋转)
  2. 在放置文件的操作系统内存映射数据库中写入
  3. 如果需要传染性记忆……重复1和2
  4. 然后视频卡必须等待内存分配。(无所事事)
  5. 为视频卡加载纹理。(旋转)
  6. 在放置纹理的内存映射数据库中写入
  7. 然后不断地轮询显卡,“你完成了吗?你完成了吗?是的!是的!?因为任务栏中的 Johnny Boy 真的真的需要变坏!!”
  8. 然后,显卡根据某种算法决定应该保留什么和不应该保留什么。
  9. 然后告诉操作系统哪部分内存没有使用。
  10. 所有这些都是为了让你每秒获得 60 帧(当然,从技术上来说不是,但你明白我的意思)

这也会影响操作系统管理的所有其他对延迟敏感的驱动程序,即音频驱动程序(跳过跳过)和网络驱动程序(喂,那家伙是怎么通过门传送过来的!?)

您如何解决这个问题?通过提升设备驱动程序开发人员的质量。他们被严重低估和忽视。想法包括向当地 DD 开发人员发送爱心包裹、乐高机器人套件、大显示器,当然还有女性。

相关内容