Вопросы к Поиску с Алисой

Примеры ответов Поиска с Алисой
Главная / Технологии / Как устроена работа сборщика мусора в .NET?
Вопрос для Поиска с Алисой
24 марта

Как устроена работа сборщика мусора в .NET?

Алиса
На основе источников, возможны неточности

Работа сборщика мусора в .NET основана на предположении, что объекты, достижимые из определённых корней, нужно сохранить в куче, так как они могут использоваться в программе. intuit.ru Все остальные объекты можно удалить. intuit.ru

Процесс сборки мусора состоит из нескольких этапов: learn.microsoft.com

  1. Этап маркировки. learn.microsoft.com Сборщик ищет все используемые объекты и составляет их перечень. learn.microsoft.com
  2. Этап перемещения. learn.microsoft.com Обновляются ссылки на сжимаемые объекты. learn.microsoft.com
  3. Этап сжатия. learn.microsoft.com Освобождается пространство, занятое неиспользуемыми объектами, и сжимаются выжившие объекты. learn.microsoft.com

Для эффективной работы с объектами различной «старости» сборщик мусора использует концепцию поколений (поколения 0, 1 и 2): pikabu.ru

  • При создании объекты помещаются в поколение 0. pikabu.ru Если объект слишком большой (по умолчанию объекты размером больше 85 000 байт), то он будет помещён в Large Object Heap (очищается вместе с поколением 2). pikabu.ru
  • Когда поколение 0 заполнено — запускается сборка мусора. pikabu.ru Неиспользуемые объекты удаляются, оставшиеся перемещаются в поколение 1. pikabu.ru
  • Аналогично происходит сборка мусора, когда заполнено поколение 1. pikabu.ru Все выжившие объекты перемещаются в поколение 2. pikabu.ru Затем происходит сборка мусора в поколении 0. pikabu.ru
  • Когда заполнено поколение 2, происходит полная сборка мусора. pikabu.ru Сперва очищается поколение 2, а затем 1 и 0. pikabu.ru Если после этого недостаточно места для новых объектов — происходит исключение OutOfMemory. pikabu.ru
  • В самом конце происходит фаза сжатия, в которой сборщик мусора перемещает живые объекты так, чтобы они располагались в памяти непосредственно друг за другом. pikabu.ru

Сборщик мусора в .NET имеет два основных режима работы: режим рабочей станции и режим сервера, а также два подрежима: параллельный и непараллельный. habr.com

Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.
Задать новый вопрос
Задайте вопрос...
…и сразу получите ответ в Поиске с Алисой
Войдите, чтобы поставить лайк
С Яндекс ID это займёт пару секунд
Войти