我对 XP 中的 Windows 任务管理器有一定的了解,但我想在 Vista 中更好地了解它。 “工作集(内存)”和“内存(私有工作集)”有什么区别。什么是Paged Pool,什么是NP Pool(Non-Paged?)。如何使用这些来确定内存使用情况?顺便说一句,当您最小化一个程序时,它经常会返回其正在使用的 90% 的内存。有什么办法可以做到这一点而不最小化它吗?
此 MSDN 博客条目 http://blogs.msdn.com/salvapatuel/archive/2007/10/13/memory-working-set-explored.aspx可能对问题的第一部分提供信息。简短摘录:
工作集是仅驻留在物理内存中的虚拟页的子集;这将是该进程的部分页面。
正如本文中所讨论的,有关私有与非私有的部分与进程使用的内存(可以由其他进程共享)有关。如果不能共享内存(也许该内存被 DLL 的映像使用,必须在内存中重新定位),它就会变成私有的。堆内存也始终是私有的。
最小化程序时看到内存急剧下降的原因是,每当其主窗口最小化时,Windows 都会自动修剪进程的工作集。看这篇 Microsoft 知识库文章 http://support.microsoft.com/kb/293215了解更多信息,包括如何自行执行此操作的说明。
分页池和非分页池内存是指进程使用的内核内存。分页池中的内存可以调出(当内存压力增加时从物理内存中删除)。非分页池中的内存将始终保留在物理内存中,因此通常最好保持较小的值。不过,除非您正在编写设备驱动程序,否则作为用户模式应用程序开发人员,您通常不需要担心这两件事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)