Събирачът на боклук (GC) управлява разпределението и освобождаването на памет. Събирачът на отпадъци служи като автоматичен мениджър на паметта. Не е необходимо да знаете как да разпределяте и освобождавате памет или да управлявате живота на обектите, които използват тази памет.

Ползи

Събирачът на отпадъци предоставя следните предимства:

  • Освобождава разработчиците от необходимостта ръчно да освобождават памет.
  • Ефективно разпределя обекти в управляваната купчина.
  • Възстановява обекти, които вече не се използват, изчиства паметта им и я запазва налична за бъдещи разпределения. Управляваните обекти автоматично получават чисто съдържание за начало, така че техните конструктори не трябва да инициализират всяко поле с данни.
  • Осигурява безопасност на паметта, като гарантира, че даден обект не може да използва за себе си паметта, разпределена за друг обект.

Фази на събиране на отпадъци

Събирането на боклука има следните фази:

  • Фаза на маркиране, която намира и създава списък на всички живи обекти.
  • Фаза на преместване, която актуализира препратките към обектите, които ще бъдат уплътнени.
  • Фаза на уплътняване, която възстановява пространството, заето от мъртвите обекти, и уплътнява оцелелите обекти. Фазата на уплътняване премества обекти, които са оцелели след събиране на боклук, към по-стария край на сегмента.

Справка:

  1. https://www.geeksforgeeks.org/garbage-collection-in-c-sharp-dot-net-framework/
  2. https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals
  3. https://www.tutorialspoint.com/What-is-garbage-collection-in-Chash