Съдържание:
- Определение - Какво означава събиране на боклук (GC)?
- Techopedia обяснява събирането на боклука (GC)
Определение - Какво означава събиране на боклук (GC)?
Събирането на боклук (GC) е динамичен подход към автоматичното управление на паметта и разпределението на купчината, който обработва и идентифицира мъртви блокове памет и преразпределя хранилище за повторна употреба. Основната цел на събирането на боклука е да намали течовете на паметта.
Внедряването на GC изисква три основни подхода, както следва:
- Маркиране и преместване - В процеса, когато паметта изтече, GC локализира цялата достъпна памет и след това възстановява наличната памет.
- Референтно броене - Разпределените обекти съдържат референтен брой на референтния номер. Когато броят на паметта е нула, обектът е боклук и след това се унищожава. Освободената памет се връща в купчината памет.
- Копиране на колекция - Има два дяла на паметта. Ако първият дял е пълен, GC локализира всички достъпни структури от данни и ги копира във втория дял, като уплътнява паметта след GC процеса и позволява непрекъсната свободна памет.
Някои езици и платформи за програмиране с вграден GC (напр. Java, Lisp, C # и .Net) самоуправляват течовете на паметта, което позволява по-ефективно програмиране.
Techopedia обяснява събирането на боклука (GC)
Динамичният подход за събиране на боклук при автоматичното разпределение на купчината адресира често срещани и скъпи грешки, които често са нерегистрирани в дефекти в реалния свят.
Тъй като те са трудни за идентифициране и поправяне, грешките при разпределението са скъпи. По този начин, събирането на боклук от мнозина се счита за съществена езикова характеристика, която улеснява работата на програмиста с по-ниско ръчно управление на разпределението на купчината. GC обаче не е перфектен и трябва да се вземат предвид следните недостатъци:
- Когато освобождава памет, GC консумира изчислителни ресурси.
- Процесът на GC е непредсказуем, което води до разпръснати забавяния на сесиите.
- Когато неизползваните референтни обекти не са разположени ръчно, GC причинява течове на логическа памет.
- GC не винаги знае кога да обработва в среда на виртуална памет на съвременните настолни компютри.
- Процесът на GC взаимодейства слабо с кеш и виртуалната система на паметта, което води до трудности с настройката на производителността.