Windows 8 64 位元顯示記憶體不足,而 4+Gb 可用

Windows 8 64 位元顯示記憶體不足,而 4+Gb 可用

我有 Windows 8.1 64 位元、8Gb 記憶體。

我的任務管理器顯示 49% 已使用 RAM,但我仍然收到諸如“Windows 內存不足,我們建議關閉應用程式”之類的消息。它總是說關於當前不活動的應用程序,但比其他進程使用更多的記憶體(當 Firefox 啟動時,它是 Firefox,否則它是 Skype)。

所以我的問題是:如何設定閾值或如何強制Windows不報告關於記憶體不足?

注意:即使有 70% 以上的可用空間,它仍然報告記憶體不足。運行的應用程式數量並不重要。

註2:當我啟動新應用程式時,不會發生這種情況。看起來 Windows 有一些記憶體檢查器,並且在關閉時會定期彈出該訊息。它最小化活動應用程式(遊戲或瀏覽器)並向我顯示奇怪的訊息。

答案1

你的電量不足虛擬的記憶。即使您有足夠的可用 RAM,這種情況也可能發生。

這就像即使你有很多支票,銀行裡有很多錢,你也無法花錢一樣。你必須有足夠的錢來支付你已經開出的支票,否則如果你所有的支票都立即兌現,你就無法再開出更多的支票,否則就會面臨災難的風險。

一個簡單的解決方案是放大分頁檔案。

分頁檔案就像 Windows 可以藉用的信用額度。知道它可以從分頁文件借用,如果它的所有支票都立即兌現,它可以繼續寫入支票。很可能它實際上不會使用分頁文件,但它只是需要它來確保它能夠兌現其承諾。

例如,假設您有 4GB RAM。四個應用程式啟動並告訴作業系統它們可能需要最多 1GB 的 RAM(預留)。作業系統說“很好”,然後所有四個應用程式都會啟動。 (你不想讓他們跑嗎?!)

假設他們現在總共使用 1GB RAM。然後另一個應用程式啟動並請求 1GB。作業系統可以做什麼?如果它對該應用程式說“是”,那麼在所有應用程式突然使用它們請求的所有記憶體的極不可能的情況下會發生什麼?該作業系統沒有 5GB 可用空間,而且它無法撤銷已經做出的承諾。

當然,使用頁面文件,它可以將很少使用的頁面寫入磁碟並兌現其所有承諾。因此它需要頁面檔案來允許另一個應用程式運行,即使 3GB 是空閒的。

借助大型分頁文件,只要 RAM 能夠容納實際工作集,Windows 就可以允許應用程式運作。如果根本沒有分頁文件,Windows 就無法允許任何應用程式運行,除非它能夠將根據其已做出的承諾可能使用的所有內容放入 RAM 中。這意味著,例如,1GB 檔案的簡單私有、可寫映射實際上會浪費整個 1GB RAM,因為應用程式可能會寫入該檔案的每個位元組,因此 1GB RAM 只能包含可以安全存取的頁面。被丟棄。

順便說一下,Linux 允許作業系統過度使用後備儲存。這樣做的缺點是,如果作業系統最終做出了它無法兌現的承諾,它可能需要強制終止進程。這就是為什麼 Linux 有一個“OOM殺手「而 Windows 則沒有。大多數 Linux 機器都有過度使用無論如何禁用。

答案2

可以透過破解註冊表來關閉記憶體不足警報,如下所述。

但是,由於登錄機碼修改可能會破壞 Windows 的穩定性,因此最好先處理備份並建立系統還原點,以便在出現問題時可以返回該還原點。我對這個黑客沒有個人經驗。

啟動 regedit 並將自己定位到此鍵:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules

匯出(用於備份)然後刪除以下子項目:

{45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}
{5EE64AFB-398D-4edb-AF71-3B830219ABF7}
{C0F51D84-11B9-4e74-B083-99F11BA2DB0A}

現在重新啟動。

如果您發現您無權刪除這些註冊表項,請參閱文章
取得 Windows 7 中登錄項目的所有權

您應該意識到這樣一個事實:如果您在沒有警告的情況下耗盡內存,Windows 可能會在沒有任何事先通知的情況下崩潰,或者程式可能會出現異常行為。

此外,此建議適用於 Windows 7,但從未在 Windows 8.1 中得到證實。

來源

相關內容