2012-04-19 27 views
2

我看到在性能監視器計數器「內存」這個評論 - 「工作集」介紹:Windows內存管理器用於確定何時開始將頁面交換到磁盤的閾值是多少?

如果計算機中的可用內存高於閾值,頁面被留在 工作集即使過程他們沒有被使用。當內存降至閾值以下時,頁面將從工作集中刪除。

我還沒有找到任何有關此閾值的文檔。它是可用RAM的百分比?是否當提交費用消耗所有可用的RAM?系統如何處理內核頁面與用戶模式頁面?

所以我的問題是:

  • 那是什麼門檻?
  • 有沒有辦法檢測到它?
  • 不同版本的Windows有不同的行爲或閾值嗎?

這種情況是,我的進程將嘗試使用盡可能多的內存,因爲有可用的物理RAM。一旦達到此限制,我可以釋放並緩存磁盤中的某些內存,以便爲新東西騰出空間。它可以在內存條件較低時幫助緩解頁面文件抖動。我想在內存管理器開始將頁面交換到磁盤之前執行釋放,因爲內存使用已經超過了魔術閾值。

我當前使用MEMORYSTATUSEX :: ullAvailPhys值(由GlobalMemoryStatusEx填充)來標識可用物理內存量。

+0

你或許不應該這樣做:http://blogs.msdn.com/b/oldnewthing/archive/2012/01 /18/10257834.aspx – 2012-04-20 05:02:17

+0

感謝您的信息哈利。在這種情況下,我們對將運行此應用程序的機器進行重要控制,並且我可以對應用程序幾乎獨佔訪問內存做出準確的假設。所以,我不擔心與其他應用程序打好。 :) – Tra5is 2012-04-20 22:33:55

+0

你有沒有考慮完全關閉虛擬內存? – 2012-04-21 03:33:40

回答

1

Windows使用盡可能多的RAM儘可能無論是程序和磁盤緩存,因此不會在某個時刻掉巨大...

,如果你想要運行的應用程序更多的內存,你必須減少磁盤-cache。

有一種工具可以通過SysInternal設置磁盤緩存。

cacheset.exe 

你可以在這裏找到:

http://technet.microsoft.com/en-us/sysinternals/bb897561.aspx

相關問題