Sobes.tech
Junior

C#теги калдык жыйгыч (Garbage Collector) эмне?

sobes.tech AI

AIден жооп

Автоматтык эс тутумун башкаруу механизми, ал объекттердин ээлеген эсин бошотуп, андан кийин башка шилтемелер болбой калганда, эсин бошотуп турат. Бул эсиктин агып кетишин алдын алат жана өнүктүрүү процессин жөнөкөйлөтөт.

Чогултуучу механизмдин иштөө принциптери:

  1. Объекттерди көзөмөлдөө: Алар корень түйүндөрдөн (статикалык талаалар, стекке жайгашкан жергиликтүү өзгөрмөлөр) дагы жеткиликтүү экенин аныктайт.
  2. Кайра колдонуу: Эгер объектке шилтемелер жок болсо, чогултуучу аны өчүрүү үчүн белгилейт.
  3. Эс тутумун бошотуу: Өчүрүлгөн объекттердин ээлеген эсин бошотуп, калган эсин кысуучу аркылуу бөлүштүрөт.

Объекттердин муундары:

  • 0-муун: Жаңы түзүлгөн жана кыска мөөнөттүү объекттерди камтыйт. Жыйноо көп учурда болот.
  • 1-муун: 0-муундун жыйноосунан өткөн объекттерди камтыйт. Жыйноо азыраак болот.
  • 2-муун: Узак мөөнөттүү объекттерди камтыйт. Жыйноо сейрек болот.

Мажбурлуу GC чакырышы (аз колдонулат жана этияттык менен):

// Мажбурлуу жыйноо чакырышы
System.GC.Collect();
// Финализаторлордун аяктоо үчүн күтүү
System.GC.WaitForPendingFinalizers();

.NETтеги негизги жыйноо механизми белгилөө жана кысуу алгоритми болуп саналат.