![减少共享内存](https://linux22.com/image/1553609/%E5%87%8F%E5%B0%91%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98.png)
我有一台旧的 MacBookPro (2011) (4GB RAM,NVIDIA GeForce 320M 显卡)。我使用 bootcamp 安装了 Win 7 ultimate (32 位)。我在 Windows 中遇到了 RAM 容量问题。
但在 Windows 中,它为“硬件保留”分配了 1290 MB:
经过一番搜索,我相信“硬件保留”的主要部分是用于图形的“共享内存”。以下内容取自 Windows 中的 NVIDIA 控制面板:
所以我的问题是:如果“硬件保留”如此之大的原因实际上是因为图形共享内存,那么我该怎么做才能减少 Windows 中的共享内存量并获得更多 RAM?显然,OS X 运行时没有为共享内存保留这么多内存,因此似乎应该可以减少这个数量,并且一切仍然正常工作。
答案1
简而言之:您需要升级到 64 位 Windows。
再长一点:系统可以使用 32 位数字来寻址内存。这 32 位只能寻址 4GB 内存。显卡使用一种称为直接内存访问 (DMA) 的机制在 RAM、CPU 和显卡之间移动数据。DMA 的工作原理是让 PCI 设备在系统中看起来像 RAM。
此机制必须使用内存可用的 32 位地址。这将取代用于 RAM 的地址,因此您实际上正在失去它。不可能只将部分显卡内存分配给 DMA(至少我从未听说过),因为这会导致驱动程序和硬件之间不兼容。
不仅显卡会这样做,所有 PCI 设备都会这样做。这解释了为什么显卡有 1083MB 共享系统内存,但保留了 1290MB。使用 DMA 的其他设备可能是网卡、wifi 卡、声卡、USB 控制器等。
它在 MacOS X 中运行良好,因为这是一个 64 位操作系统。它具有相同数量的“硬件保留内存”,但由于地址空间大得多,它可以将其分配给不与 RAM 重叠的地址。
是的,我知道我跳过了很多细节,而且有些事情是有争议的,但我认为 OP 没有必要再讲得那么详细。