2008-10-18 64 views
7

我对XP中的Windows任务管理器有一定了解,但我想在Vista中更好地理解它。 “工作集(内存)”和“内存(专用工作集)”之间的区别是什么?什么是分页池,什么是NP池(非分页?)。如何使用这些来确定内存使用情况?另外,当你最小化一个程序时,它经常返回90%的内存。有没有办法做到这一点,而不是最小化?程序员对Vista中的内存的理解Windows任务管理器

回答

7

This MSDN blog entry可能会在问题的第一部分提供信息。简要摘录如下:

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

正如文章中所讨论的那样,关于private和not-private的部分与进程使用的内存有关,可以被其他进程共享。如果你不能共享内存(也许内存被一个DLL的映像使用,必须重新定位到内存中),它就变成了私有的。堆内存也始终是私人的。

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

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

0

Vista的SuperFetch认为空闲内存浪费了内存。更好的是像缓存一样使用它。这就是为什么你会经常在任务管理器中看到很少的空闲内存。

相关问题