什么硬件设备占用了我 4GB RAM 中的 1.4GB?

mih*_*ihi 6 memory windows-7 resource-monitor intel-graphics

我在具有 4GB RAM 的 Lenovo 530 笔记本电脑上使用 Windows 7 64 位。

但是,我的任务管理器显示 RAM 量只有 2.6GB,而资源监视器显示 1.4 GB 被“硬件使用”:

资源监视器屏幕截图

显然,我想使用更多的 RAM(例如,目前无法使用 2GB 的 RAM 启动 VirtualBox VM)。

所以我继续寻找哪个设备可能是我只有很少可用 RAM 的原因,以及我是否可以更新其驱动程序或禁用它......

首先,我尝试了 64 位 Linux Live ISO (grml64) 以排除任何驱动程序问题,并且那里的内存情况是相同的(在 中也只有 2.6GB 可用/proc/meminfo)。其他人建议msconfig可能设置了内存限制,但没有设置(如果我将一个设置为 3.5GB,可用内存减少 0.5GB)。

接下来,我尝试了meminfo -r哪个输出:

MemInfo v2.10 - Show PFN database information
C:\Users\Michi\Desktop>meminfo -r
Copyright (C) 2007-2009 Alex Ionescu
www.alex-ionescu.com

Physical Memory Range: 0000000000001000 to 000000000009D000 (156 pages, 624 KB)
Physical Memory Range: 0000000000100000 to 0000000020000000 (130816 pages, 523264 KB)
Physical Memory Range: 0000000020200000 to 0000000040004000 (130564 pages, 522256 KB)
Physical Memory Range: 0000000040005000 to 00000000871F2000 (291309 pages, 1165236 KB)
Physical Memory Range: 0000000100000000 to 000000011F600000 (128512 pages, 514048 KB)
MmHighestPhysicalPage: 1177088
Run Code Online (Sandbox Code Playgroud)

所以从0x871F2000到0x100000000的内存是不可用的,大概是1.8GB左右,但是4G以上的可用内存范围只有500MB左右,差别就在我“猎取”的1.4GB左右。

通常,我的期望(来自旧计算机也来自 DOS 时代)是,当硬件“映射”某些内存范围时,它会将其映射到自己的(虚拟或真实)内存,并且内存量会在最后“出现”内存范围(因为它发生在 4GB 以上的大约 500MB)。

设备管理器中的内存映射看起来像这样,在 0x871F 处没有任何内容......或者:

            [00000000000A0000 - 00000000000BFFFF]  Intel(R) HD Graphics 4000
            [00000000000A0000 - 00000000000BFFFF]  PCI bus
            [00000000DFA00000 - 00000000FEAFFFFF]  PCI bus
            [00000000E0000000 - 00000000EFFFFFFF]  Intel(R) HD Graphics 4000
            [00000000F0000000 - 00000000F03FFFFF]  Intel(R) HD Graphics 4000
            [00000000F0400000 - 00000000F0BFFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
            [00000000F0C00000 - 00000000F13FFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
            [00000000F1400000 - 00000000F1403FFF]  Realtek PCIe GBE Family Controller
            [00000000F1400000 - 00000000F14FFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 4 - 1E16
            [00000000F1404000 - 00000000F1404FFF]  Realtek PCIe GBE Family Controller
            [00000000F1500000 - 00000000F1CFFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
            [00000000F1D00000 - 00000000F1D03FFF]  1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
            [00000000F1D00000 - 00000000F1DFFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 2 - 1E12
            [00000000F1E00000 - 00000000F25FFFFF]  Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
            [00000000F2600000 - 00000000F260FFFF]  Intel(R) USB 3.0 eXtensible-Hostcontroller
            [00000000F2610000 - 00000000F2613FFF]  High Definition Audio-Controller
            [00000000F2614000 - 00000000F26140FF]  Intel(R) 7 Series/C216 Chipset Family SMBus Host Controller - 1E22
            [00000000F2615000 - 00000000F261500F]  Intel(R) Management Engine Interface 
            [00000000F2618000 - 00000000F26187FF]  Intel(R) 7 Series Chipset Family SATA AHCI Controller
            [00000000F2619000 - 00000000F26193FF]  Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E26
            [00000000F261A000 - 00000000F261A3FF]  Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E2D
            [00000000F8000000 - 00000000FBFFFFFF]  Hauptplatinenressourcen
            [00000000FE800000 - 00000000FE80FFFF]  Hauptplatinenressourcen
            [00000000FED00000 - 00000000FED003FF]  Hochpräzisionsereigniszeitgeber
            [00000000FED10000 - 00000000FED17FFF]  Hauptplatinenressourcen
            [00000000FED18000 - 00000000FED18FFF]  Hauptplatinenressourcen
            [00000000FED19000 - 00000000FED19FFF]  Hauptplatinenressourcen
            [00000000FED1C000 - 00000000FED1FFFF]  Hauptplatinenressourcen
            [00000000FED20000 - 00000000FED3FFFF]  Hauptplatinenressourcen
            [00000000FED40000 - 00000000FED44FFF]  Trusted Platform Module 1.2
            [00000000FED45000 - 00000000FED8FFFF]  Hauptplatinenressourcen
            [00000000FED90000 - 00000000FED93FFF]  Hauptplatinenressourcen
            [00000000FEE00000 - 00000000FEEFFFFF]  Hauptplatinenressourcen
            [00000000FF000000 - 00000000FFFFFFFF]  Hauptplatinenressourcen
            [00000000FF000000 - 00000000FFFFFFFF]  Intel(R) 82802 Firmwarehub
            [00000000FFFFF000 - 00000000FFFFFFFF]  Hauptplatinenressourcen
Run Code Online (Sandbox Code Playgroud)

由于 Intel HD Graphics 使用共享内存,我进行了验证,目前它仅使用 83 MB:

高清显卡控制中心

任何想法如何恢复我的记忆?

编辑:

笔记本自带这个内存配置(使用了1个4GB),还自带了Windows 7。半年前我确实重新安装了Windows 7(并使用Lenovo Update Wizard安装了所有驱动程序),当时我也安装了BIOS/固件更新,但从未查看过资源监视器,因为我根本不需要额外的 RAM,所以我不知道在我得到它时是否已经存在这种影响。

编辑2:

显然,@A32167 是对的。我找到了一个如何在 WebGL 中加载纹理的小例子,将其修改为加载 8192x8192 纹理(参见http://jsfiddle.net/q4SAS/),在谷歌浏览器中打开它,而“正在使用的图形内存”增加到918MB,硬件预留内存没变:

运行 WebGL 示例后的资源监控中心

虽然这回答了我的问题,但当然仍然存在的问题是为什么联想用动态图形内存分配做广告,以及是否有办法减少分配的内存......

编辑3:

不幸的是,这还不是故事的结局 - 请看这里: 过去是什么硬件设备占用了我 4GB RAM 中的 1.4GB,而现在在没有硬件更改后突然占用了 2.2GB?

小智 5

在上面的屏幕上,您配置了视频卡,是不是有可能为该卡保留1138 个“最大”内存,尽管它目前仅使用 83 个?


mih*_*ihi 1

终于找到了正确答案并恢复了记忆。

正如https://superuser.com/a/762821/1724(本问题后续问题的答案)中详细介绍的,UEFI 实现的一个功能是在每次更新之前更新内存映射(持久存储在 UEFI 变量中)。发生任何变化时启动。它显然没有考虑到在启动之前,另一个UEFI启动项可能已经失败并且没有清理所使用的内存(取决于启动加载程序),导致每次UEFI启动失败后可用内存减少。

手动修复内存映射(存储在 UEFI 变量 中MemoryTypeInformation)可以解决该问题 - 虽然 TianoCore 参考实现表明删除变量也应该有效,但我不想冒这个风险。


归档时间:

查看次数:

3968 次

最近记录:

11 年,5 月 前