[問題] 關於WIN7的記憶體管理方式

看板Windows作者 (痰吐袋)時間16年前 (2009/08/08 00:48), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
因為我是從XP 32 直接跳WIN7 64 的使用者,所以對於VISTA和WIN7不是很熟 我想請教,WIN7或是VISTA對於記憶體管理方面的細節 首先從資源監視器看可以看到,程式使用中的部分 我的理解是程式沒有發出釋放指令,所以作業系統絕對不能把他給別人 而待命是程式釋放的部分,釋放了如果沒有用到也就放在那 就像是工具用完隨手放桌上,說不定等等要用到就可以馬上拿 然後快取就是系統判斷記憶體還剩多不多,夠多,他就依照程式設定來先預讀入 這部分其實很多程式應該都沒有設定快取該拿甚麼,所以作業系統會根據經驗猜 最後作業系統會盡量把檔案都快取入記憶體,大概只保留2-3成完全沒用到的 而如果使用者讀取越來越頻繁 又完全不做其他的事情 系統就會智慧判斷保留 最少最少的使用者介面快取 以防你突然開視窗他記憶體沒快取就會讀硬碟導致很LAG 前述這段有個有趣的地方 是我有用虛擬機做一台動物機 就放著跑動物 我給他1G記憶體跑 他剛好吃到實體記憶體500MB 待命(快取)500MB 其中動物吃100左右 VM的硬碟燈大概3-5秒閃1次 但是以前用XP的時候 很久沒動 突然去動 超級LAG... 再來是更有趣的地方 虛擬機本身就有規劃給他1G記憶體活用 虛擬機的作業系統會自行判斷快取哪些檔案 而虛擬機存入硬碟或是使用分頁檔這件事 對實體機來說看到的是VMware存取硬碟 於是實體機看到這麼大量的存取,又幫忙快取下去,於是總共就吃掉了我4G記憶體 因為夠聰明快取得當,我不管做甚麼都不會感覺到延遲,很順暢 除非瓶頸並不在記憶體,例如開WOW就不行了 以上都是我推測的不知是否有誤? 我想了很久,快取除了存完硬碟也不刪除等看看下次有沒有又要之外 應該就是剩下作業系統主動預測先讀吧? 不知道除了工作管理員和資源監視器,還有甚麼方法可以知道(最近對這些很好奇..) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.14.29

08/08 01:16, , 1F
程式如果沒有自行管理快取,就是沒有快取,但系統可
08/08 01:16, 1F

08/08 01:17, , 2F
以把讀進ram的檔案先留著,減少磁碟讀寫,另外,其實
08/08 01:17, 2F

08/08 01:18, , 3F
我對預讀很反感。
08/08 01:18, 3F
文章代碼(AID): #1AV5h8j_ (Windows)
文章代碼(AID): #1AV5h8j_ (Windows)