Время от времени я нахожу, что делаю что-то умеренно тупое, что приводит к тому, что моя программа выделяет всю память, которую он может получить, а затем некоторые.
Этот тип используется, чтобы заставить программу умереть довольно быстро с ошибкой "из памяти", но в наши дни Windows будет изо всех сил, чтобы предоставить эту несуществующую память для приложения, и на самом деле это видимо, готовый совершить самоубийство. Разумеется, это не буквально, но он будет голодать от полезной физической памяти настолько плохо, что даже запуск диспетчера задач потребует полчаса обмена (ведь все-таки приложение-победитель все равно все больше выделяет все больше памяти).
Это происходит не слишком часто, но когда это делает это катастрофическим. Обычно мне приходится reset моя машина, что приводит к потере данных время от времени и, как правило, много неудобств.
Есть ли у вас какие-либо практические советы по снижению последствий такой ошибки? Возможно, некоторые настройки реестра, чтобы ограничить максимальное количество виртуальной памяти, которую приложение может распределить? Или некоторый флаг CLR, который ограничит это только для текущего приложения? (Обычно в .NET я делаю это для себя.)
( "Не запускайте ОЗУ" и "Купить больше ОЗУ" бесполезно - первое, с чем я не контролирую, и последнее, что я уже сделал).