2008-10-18 65 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認爲空閒內存浪費了內存。更好的是像緩存一樣使用它。這就是爲什麼你會經常在任務管理器中看到很少的空閒內存。

相關問題