我每時每刻都會發現自己做了一些適度愚蠢的事情,導致我的程序分配了可以獲得的所有內存,然後分配了一些內存。你如何保護自己免受暴風影響的內存消耗降低PC?
這種事情會導致程序很快就會因爲「內存不足」錯誤而死亡,但是現在Windows將無法爲應用程序提供這種不存在的內存,事實上,顯然準備自殺。當然不是,雖然運行任務管理器需要半個小時的交換時間(在所有失控應用程序仍然分配越來越多的內存之後),否則它會使可用物理內存嚴重匱乏。
這並不經常發生,但是當它發生時是災難性的。我通常不得不重置我的機器,導致數據時常丟失,並且通常會帶來很多不便。
對於使這種錯誤的後果不那麼可怕,您有任何實際的建議嗎?也許一些註冊表調整來限制應用程序允許分配的最大虛擬內存量?或者一些CLR標誌只會限制當前的應用程序? (它通常是在.NET中,我這樣做是爲了我自己)
(「不要跑出來的RAM」和「購買更多RAM」是沒有用的 - 前者我沒有控制權,而後者我已經完成了。)
+1,我一直想問這個問題一段時間。當它不是我的應用程序時,情況更糟,我無法點擊「停止」。 – zildjohn01 2010-06-11 17:20:25
當我感覺像這樣出現錯誤時,通常我會快速地殺死我的應用程序。但是,考慮解決方案而不是僅僅靠這種「危險」來生活。也許有一些調整,這將不勝感激! – zerm 2010-06-11 17:25:23
我從來沒有見過失控的內存消耗降低了PC的性能,但是如果這樣做的話,那麼我希望它在開發或質量保證期間這樣做,以便我們解決問題;或者如果它發生在生產中,我希望我們的操作人員會殺死/轉儲過程並通知我。 – 2010-06-11 17:28:42