В пункте 3 Tess ссылается на «уведомление о нехватке памяти», отправляемое Windows в случае нехватки доступной памяти.Приложения могут прослушивать это уведомление - реагировать каким-либо образом до того, как произойдет что-то худшее (например, сохранить важные данные и т. Д. И т. Д.).Хорошо работающие приложения могут даже попытаться помочь ОС, обрезав собственную память.
CLR ожидает уведомления о нехватке памяти.Когда это происходит, GC срабатывает и, как правило, делает GC более агрессивными.Преимущества взаимны, потому что снижение нагрузки на память помогает всем приложениям в системе (включая само приложение .NET).
Когда отправляется уведомление о нехватке памяти, это не так хорошо документировано.Согласно комментарию во внутреннем классе System.Runtime.Caching.PhysicalMemoryMonitor
, который, в свою очередь, основан на комментариях от внутренних реализаций Windows, уведомление о нехватке памяти сигнализируется, когда занято около 97-99% физической памяти (в зависимости отобъем физической оперативной памяти, установленной в системе).