Junior
Šta je sakupljač smeća (Garbage Collector)?
sobes.tech АИ
Одговор од АИ
Механизам за аутоматско управљање меморијом који ослобађа непотребне објекте у хипу.
Принципи рада:
- Детекција доступности објеката: Прати објекте на које се позивају живи (доступни) објекти из извора (на пример, стек нитева).
- Ослобађање недоступних објеката: Објекти без референци се сматрају "сметом" и њихова меморија може бити поново коришћена.
Типови сакупљача смећа (зависи од језика/платформе):
- Mark and Sweep: Обележава доступне објекте (обележавање), затим пролази кроз хип и ослобађа необележане (чишћење). Може довести до фрагментације меморије.
- Copying: Делује хип на две делове. Копира живе објекте у нови део, затим чисти стари. Превентивно делује на фрагментацију, али захтева више меморије.
- Генерацијски: Делује објекте по старости у генерације. Чешће сакупља смеће у "млађој" генерацији, где већина објеката не живи дуго.
Предности:
- Смањује вероватноћу цурења меморије.
- Поједностављује развој (не треба јасно ослобађати меморију).
Недостаци:
- Може изазвати кашњења (паузе) током сакупљања.
- Време сакупљања је непредвидиво.