為什麼系統需要這麼多記憶體?

為什麼系統需要這麼多記憶體?

為什麼所有進程總共只使用了 2GB 多的內存,而總共使用了 5GB 內存?為什麼系統需要這麼多記憶體?

答案1

沒有記憶體壓力的系統沒有理由嘗試釋放 RAM。事實上,他們會盡可能多地使用 RAM,因為正在使用的 RAM 可以提高效能。未使用的 RAM 將永遠被浪費,您無法保存 RAM 以供以後使用,因此現代作業系統會盡可能地嘗試使用 RAM。

直接將 RAM 從一種用途轉換到另一種用途比釋放它然後再次釋放它要有效得多。

這種行為是有意設計的。如果您想讓內存​​無所事事,請將其從計算機中取出並放在辦公桌上。

如果您在想“我現在想要釋放 RAM,以便以後可以使用它”,請將其從您的腦海中剔除。現在您就可以使用它稍後使用它。這裡不需要做出權衡。

答案2

第一,如果列標題如我所想,則前兩個進程本身正在使用 2 GB。 (注意,「系統」進程不是作業系統…不是全部。例如,分頁池和非分頁池、檔案快取和 SUperFetch 快取使用的內存,不會作為「系統」過程。)

二、該欄位僅顯示每個行程的大小私人的工作集。但每個進程的 RAM 都比這個多得多。其餘的都在它的共享工作集。這可以在進程之間共享,但這不是必須的。如果您將所有共享工作集加起來......不幸的是,這不會告訴您真正的總使用量是多少。它遠沒有這些總數那麼大,而且也非常非常不可能像最大的共享工作集那麼小。

第三,作業系統確實保留了許多不屬於任何進程的東西。有非分頁池。分頁池中有常駐(分頁)部分。系統檔案快取的駐留部分(不是 SuperFetch 快取)也是被視為「正在使用」(而不是「可用」)的記憶體的一部分。 (SuperFetch 使用的空間被視為「可用」)。

第四,幾乎所有這些用途(非分頁池除外)都是可分頁的,因此它們並不代表每個組件「需要」多少,而是代表「在當前條件下使用了多少」。

如果 RAM 沒有壓力,Windows 允許進程和其他可分頁使用機會機會成長。這裡您有足夠的可用 RAM 來執行您目前正在執行的所有操作再次,無需關閉目前正在運行的任何內容。這並不是一個正在經歷記憶體壓力的系統,因此 Windows 當然不會吝惜 RAM。

在只有 6 GB RAM 的電腦上運行完全相同的工作負載,您可能會看到所有內容都稍微小一些,但不是很多。在4 GB RAM 機器上運行它,所有內容肯定會更小(並且可能運行得慢一點,但不會太慢,因為當前配置中RAM 中的很多內容可能是“陳舊的”...沒有太大危害脫落到磁碟。

回到目前的設定:如果您突然需要執行一些需要的東西,比如說,另外 8 GB RAM,Windows 會縮小現有的工作進程(從最不活躍的進程開始)為其騰出空間。 RAM 不像汽油;正如 David Schwartz 所說的那樣,現在無需節省 RAM,以便稍後使用。 Windows 現在可以將其用於一件事,然後讓您稍後將其用於其他事情。這就是適合您的按需分頁作業系統。

相關內容