太多的内存被使用

soa*_*dos 13 memory windows-7 64-bit

一段时间以来,我一直有这种感觉,看着任务管理器在精神上大致估计应该使用多少物理内存,并注意到存在很大差异。我终于开始测量它了。取 tasklist 的结果并添加,给出了大约 3.87 GB。任务管理器告诉我我使用了 4.6 GB 的内存。这似乎是一个很大的差距。它去了哪里?

编辑:所以很明显,它不会预取。也有人建议它是操作系统的一部分,而不是任何系统进程的一部分。如果这是真的,请找到一种方法让操作系统告诉我使用了多少内存。既然我想找出记忆去哪里了,让我看看差异对我来说没有任何意义。

编辑2:它不是以下内容:

  1. 内核
  2. 缓存
  3. 硬件保留内存

占用资源的图片。不太确定它会做什么,但是...... 在此处输入图片说明

Jou*_*eek 8

Windows 7 使用“未使用”的内存来预缓存东西,使运行速度更快。如果您需要此内存,它将被释放。

它是一个功能,而不是一个错误;)

的TechNet

在您使用 Windows Vista 系统一段时间后,您会在任务管理器的性能页面上看到可用物理内存计数器的数字较低。这是因为 SuperFetch 和标准 Windows 缓存利用所有可用的物理内存来缓存磁盘数据。例如,当您第一次启动时,如果您立即运行任务管理器,您应该注意到空闲内存值随着缓存内存数量的增加而减少。或者,如果你运行一个内存饥渴的程序然后退出它(任何分配大量内存然后释放内存的免费软件“RAM优化器”都可以工作),或者只是复制一个非常大的文件,Free数将随着系统回收释放的内存,物理内存使用图将下降。然而,随着时间的推移,SuperFetch 会用被迫出内存的数据重新填充缓存,


har*_*ymc 5

您看到的数字完全不准确,只能作为参考。

操作系统是一个极其复杂的实体,像任务管理器这样头脑简单的程序永远无法完成全部使用,它的许多部分在它运行的用户模式下根本无法访问。它无法访问或根本不可能归因于任何“任务”的一些元素是硬件分段表、共享内存分配、内核分配内存、页面内存分配、设备内存等等。

您将在如何解释任务管理器的性能选项卡中找到更多解释,但我选择引用这部分:

无论如何,您对自称为“任务管理器”的程序有何期望?操作系统内核中没有所谓的“任务”——操作系统有“进程”和“线程”。DOS 有“任务”。Intel 硬件具有“任务”结构,但操作系统不使用它们,因为它自己执行速度更快。

任务管理器是一个非常古老的 Windows 程序,即使将功能分配给服务也有问题,它显示的数字应该用大量的盐来计算。它可能错过了无法计数或归因于任何“任务”的大片内存区域。


Joe*_*net 5

我建议从 Microsoft下载Sysinternals Suite。它包括几个实用程序,它们将为您提供比任务管理器更多的信息。查看 Process Explorer、RAMMap、VMMap 和 Process Monitor 实用程序。为了从他们那里获得最多的信息,你可能需要做一些配置来改变显示的信息。

此外,由于您对 Windows 内存感兴趣,这里是Sysinternals 开发人员/创始人之一Mark Russinovich 的一系列博客文章。它将有助于理解实用程序提供的信息。