為什麼windows系統有的時候明明物理內存還沒用滿就開始使用虛擬內存了?

我家電腦2G內存(老爺機了)有的時候只是看看網頁什麼的,總內存使用量在1G多(任務管理器看的)根本就沒超過物理內存,而且有的時候我把虛擬內存使用量和物理內存使用量加起來也沒超過2G,但是windows系統為什麼還要使用虛擬內存呢?虛擬內存用的是硬碟存取速度那麼慢這樣豈不是拖慢系統速度嗎?


有一部分物理內存被放在一個叫做standby list的列表裡,這裡面存放的是那些曾經訪問過的硬碟上的內容。這部分內存在任務管理器裡面是標識成空閑內存的,因為如果真的需要物理內存,可以把standby list裡面的內容丟棄掉給新的任務使用。

但是,standby list恰恰是windows系統裡面最重要的cache,極大程度上提高了系統性能。

你看到物理內存沒用完,其實那部分「空閑內存」已經用來做cache了。


謝邀.

之前做過一個比喻,如果把系統內存比喻成一張辦公桌的桌面的話,那麼虛擬內存就相當於辦公桌下的抽屜。對於每一個程序來說,系統都會告訴他們「你們的征途是星辰大海!......啊不對,是你們能使用整張桌面!」但是實際上,我們工作時是不會把所有東西全部堆到桌面上、而完全不使用抽屜的,系統亦如此。為了一定的處理效率,系統通常會把需要優先解決的文件(程序)放在桌面上處理,而同時桌面上還會有中性筆、訂書器、文件夾等等這些勞什子物件(系統組件和驅動),而如果處理時需要另一份文件,就打開抽屜把他們拿出來,這樣處理起來才是高效又便捷的。

另外,虛擬內存作為現代操作系統一個不可分割的組成機制,不是說關就關的,因為關閉後將會不可避免的影響到系統的穩定性,而且也會影響其他使用或依賴這一機制的應用程序,至於系統設置處的虛擬內存選項,也只不過是個存儲位置的選擇罷了。

總之,我個人的意見是,這種東西就不要太操心了,交給系統自己選擇就好。一般用戶需要做的,只不過是交給操作系統一個乾淨的環境而已,如果連這個也做不到,那系統出各種各樣的問題,還能去怪誰呢?

(以上文字,手機排版,錯亂見諒)

以上.


by the way 這的確可能是微軟的調度策略問題。據說在XP時代,windows是可以關掉虛擬內存(這裡的虛擬內存指的是分頁文件)的,但是會出現各種不正常不穩定的現象。不知道現在怎麼樣了。

在linux上,虛擬內存的確可以妥妥的關掉,不會產生任何問題。linux的策略是,如果內存滿了就調度一些不常用的頁到swap空間里。但是,為了提高性能,如果內存在這之後又不滿了,那麼swap裡面的東西也不會立即被讀回內存,而是在用到的時候(或者是關閉交換空間的時候)被讀回內存。


你如果試試 把虛擬內存取消掉之後 沒開幾個網頁 就會提示內存溢出了 如果查看資源監視器 會看到內存被分為 : 為硬體預留 使用中 備用和未使用 你看看 平時未使用是多少內存

關於備用 這是windows的內存管理方法 類似於安卓的後台緩存 下次打開常用軟體可以很快打開


我比微軟聰明系列


推薦閱讀:

求大神看看是哪個進程在後台調用瀏覽器訪問網站?
兩台電腦如何共用一個顯示器?
SICP的中文版翻譯好不好?值不值得入手學習?
為什麼電腦能十秒內開機而智能手機不能?

TAG:程序員 | MicrosoftWindows | 操作系統 | 計算機 | 虛擬內存 |