Sobes.tech
Junior

C#-də tullantıların toplanması konsepsiyası nədir?

sobes.tech Süni İntellekt

AI-dan cavab

C#-də tullantıların toplanması, .NET (CLR) icra mühitinin həyata keçirdiyi avtomatik yaddaş idarəetmə prosesidir. Əsas məqsədi, artıq kök mənbələrindən (məsələn, yığın və ya statik sahələr kimi) referans olmayan obyektlərin tutduğu yaddaşı azad etməkdir.

İş prinsipi:

  1. Obyektlərin izlənməsi: Tullantıların toplanıcısı idarə olunan yığında yaradılan obyektləri izləyir.
  2. Əldə ediləbilənliyin müəyyənləşdirilməsi: Hansı obyektlərin "əldə edilə bilən" olduğunu (kök mənbələrindən əlçatan) və hansılarının olmadığını müəyyən edir.
  3. Yaddaşın azad olunması: Əldə edilə bilməyən obyektlər tullantı kimi işarələnir. Sonra, tullantıların toplanıcısı, onların tutduğu yaddaşı azad edir və onu yeni obyektlər üçün əlçatan edir.
  4. Kompaktlaşdırma: Bəzi hallarda, tullantıların toplanıcısı qalan obyektləri yerdəyişdirə bilər, bu da parçalanmanı azaldır və gələcək yaddaş ayırmalarının performansını yaxşılaşdırır.

Konsepsiya, əldə ediləbilənliyə əsaslanan yaddaş idarəetməsinə əsaslanır və proqramçıya yaddaşın əl ilə ayırılması və azad edilməsindən azad edir, bu da yaddaşla əlaqəli səhvlərin (məsələn, yaddaş sızmaları və ya azad edilmiş yaddaşa giriş) ehtimalını azaldır.

Yaddaşların toplanması fon rejimində işləyir və icra zamanı qısa müddətə dayandırıla bilər. CLR, prosesi optimallaşdırmaq üçün bir neçə nəsil (nəsil 0, 1, 2) istifadə edir və daha kiçik və qısa ömürlü obyektləri daha tez toplayır.