我看到在性能監視器計數器「內存」這個評論 - 「工作集」介紹:Windows內存管理器用於確定何時開始將頁面交換到磁盤的閾值是多少?
如果計算機中的可用內存高於閾值,頁面被留在 工作集即使過程他們沒有被使用。當內存降至閾值以下時,頁面將從工作集中刪除。
我還沒有找到任何有關此閾值的文檔。它是可用RAM的百分比?是否當提交費用消耗所有可用的RAM?系統如何處理內核頁面與用戶模式頁面?
所以我的問題是:
- 那是什麼門檻?
- 有沒有辦法檢測到它?
- 不同版本的Windows有不同的行爲或閾值嗎?
這種情況是,我的進程將嘗試使用盡可能多的內存,因爲有可用的物理RAM。一旦達到此限制,我可以釋放並緩存磁盤中的某些內存,以便爲新東西騰出空間。它可以在內存條件較低時幫助緩解頁面文件抖動。我想在內存管理器開始將頁面交換到磁盤之前執行釋放,因爲內存使用已經超過了魔術閾值。
我當前使用MEMORYSTATUSEX :: ullAvailPhys值(由GlobalMemoryStatusEx填充)來標識可用物理內存量。
你或許不應該這樣做:http://blogs.msdn.com/b/oldnewthing/archive/2012/01 /18/10257834.aspx – 2012-04-20 05:02:17
感謝您的信息哈利。在這種情況下,我們對將運行此應用程序的機器進行重要控制,並且我可以對應用程序幾乎獨佔訪問內存做出準確的假設。所以,我不擔心與其他應用程序打好。 :) – Tra5is 2012-04-20 22:33:55
你有沒有考慮完全關閉虛擬內存? – 2012-04-21 03:33:40