Как вы защищаете себя от чрезмерного потребления памяти, сбивающего ПК?

Время от времени я обнаруживаю, что делаю что-то в меру глупое, в результате чего моя программа распределяет всю память, которую она может получить, а затем и некоторую.

Подобные вещи раньше приводили к тому, что программа довольно быстро умирала с ошибкой «нехватки памяти», но в наши дни Windows приложит все усилия, чтобы передать эту несуществующую память приложению, и фактически, по-видимому, готова совершить самоубийство, делая это. Конечно, не в буквальном смысле, но он будет так сильно нуждаться в пригодной для использования физической ОЗУ, что даже для запуска диспетчера задач потребуется полчаса подкачки (после того, как запущенное приложение все еще выделяет все больше и больше памяти).

Это случается не слишком часто, но когда это происходит, это губительно. Обычно мне приходится перезагружать компьютер, что время от времени приводит к потере данных и, как правило, к большим неудобствам.

Есть ли у вас практические советы, как сделать последствия такой ошибки менее страшными? Возможно, некоторые настройки реестра ограничивают максимальный объем виртуальной памяти, который приложение может выделить? Или какой-нибудь флаг CLR, который ограничит это только для текущего приложения? (Обычно в .NET я делаю это для себя.)

(«Не хватает оперативной памяти» а также«Купи больше оперативной памяти» бесполезны - первое я не могу контролировать, а второе я уже сделал.)

Ответы на вопрос(5)

Ваш ответ на вопрос