1. Для каждого CLR / Process GC нет ОС lvl.
В основном сборщик мусора в .Net имеет два режима Рабочая станция и Режимы .
Рабочая станция предполагают, что на машине запущены другие приложения, и не загружают процессор (, что означает, что другой процесс может использовать процессор для своего собственного ГХ. коллекция ), разрешить другим приложениям / процессам использовать процессор для ИХ СОБСТВЕННЫХ Процесс ГХ.
Режим сервера предполагает, что на сервере не запущено другое приложениеи предполагается, что все процессоры на компьютере доступны для помощи в завершении GC. Этот режим GC вызвал разделение управляемой кучи на пару разделов на каждый процессор. И, как вы можете догадаться, каждый процессор отвечает за каждый раздел управляемой кучи.
По умолчанию все приложения в .Net (включая ASP.NET), работающие на моде Workstation, но мы можем включить через конфигурационный файл Server mod. Как это
<configuration>
<runtime>
<gcServer enabled = "true"/>
</runtime>
</configuration>
Исключение OutOfMemory будет сгенерировано, когда GC пройдет через все объекты поколений на основе
ноль и обнаружит, что памяти недостаточно. И начать собирать коллекцию через все поколения
один и два . Если в этом случае он определит, что снова нет памяти, будет выброшено исключение OutOfMemoryException.