【问题标题】:Programmer's understanding of Memory in the Vista Windows Task Manager程序员对 Vista Windows 任务管理器中内存的理解
【发布时间】:2010-09-17 22:26:01
【问题描述】:

我对 XP 中的 Windows 任务管理器有一些了解,但我想在 Vista 中更好地理解它。 “工作集(内存)”和“内存(私有工作集)”有什么区别。什么是Paged Pool,什么是NP Pool(Non-Paged?)。如何使用这些来确定内存使用情况?顺便说一句,当你最小化一个程序时,它经常返回它正在使用的 90% 的内存。有没有办法做到这一点而不最小化它?

【问题讨论】:

    标签: windows memory windows-vista


    【解决方案1】:

    This MSDN blog entry 可能会为问题的第一部分提供信息。摘录:

    工作集是仅驻留在物理内存中的虚拟页面的子集;这将是该进程的部分页面。

    正如文章中所讨论的,关于私有与非私有的部分与进程使用的内存有关,这些内存可以由其他进程共享。如果你不能共享内存(也许内存被一个 DLL 的映像使用,必须在内存中重新定位),它就会变成私有的。堆内存也总是私有的。

    您在最小化程序时看到内存急剧下降的原因是 Windows 会在其主窗口最小化时自动修剪进程的工作集。请参阅this Microsoft KB article 了解更多信息,包括有关如何自己执行此操作的说明。

    分页池和非分页池内存是指进程使用的内核内存。分页池中的内存可以被分页(当内存压力增加时从物理内存中移除)。非分页池中的内存将始终保留在物理内存中,因此通常最好保持较小。不过,除非您正在编写设备驱动程序,否则作为用户模式应用程序开发人员,您通常不需要担心这两项。

    【讨论】:

      【解决方案2】:

      Vista 的 SuperFetch 将空闲内存视为浪费内存。更好的是像缓存一样使用它。这就是为什么您经常会在任务管理器中看到可用内存不足的原因。

      【讨论】:

        猜你喜欢
        • 2019-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        • 2014-03-19
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        相关资源
        最近更新 更多