Sobes.tech
Junior

Šta je sakupljač smeća (Garbage Collector)?

sobes.tech АИ

Одговор од АИ

Механизам за аутоматско управљање меморијом који ослобађа непотребне објекте у хипу.

Принципи рада:

  • Детекција доступности објеката: Прати објекте на које се позивају живи (доступни) објекти из извора (на пример, стек нитева).
  • Ослобађање недоступних објеката: Објекти без референци се сматрају "сметом" и њихова меморија може бити поново коришћена.

Типови сакупљача смећа (зависи од језика/платформе):

  • Mark and Sweep: Обележава доступне објекте (обележавање), затим пролази кроз хип и ослобађа необележане (чишћење). Може довести до фрагментације меморије.
  • Copying: Делује хип на две делове. Копира живе објекте у нови део, затим чисти стари. Превентивно делује на фрагментацију, али захтева више меморије.
  • Генерацијски: Делује објекте по старости у генерације. Чешће сакупља смеће у "млађој" генерацији, где већина објеката не живи дуго.

Предности:

  • Смањује вероватноћу цурења меморије.
  • Поједностављује развој (не треба јасно ослобађати меморију).

Недостаци:

  • Може изазвати кашњења (паузе) током сакупљања.
  • Време сакупљања је непредвидиво.