Зміст:
Визначення - Що означає збирач сміття?
Збір сміття - це програмне забезпечення, яке виконує автоматичне управління пам’яттю. Його завдання полягає в тому, щоб звільнити будь-яку невикористану пам'ять і забезпечити, щоб жодна пам'ять не звільнялася, поки вона все ще використовується. Деякі мови, такі як Java та .NET, мають автоматичне збирання сміття, тоді як інші, наприклад C / C ++, вимагають від програміста керування пам'яттю вручну.
Техопедія пояснює збирач сміття
Збір сміття вперше був представлений творцем Lisp Джоном Маккарті, щоб полегшити керування пам'яттю вручну під час роботи з мовою Lisp.
Три основні методи, що використовуються сміттєзбірником для автоматичного управління пам’яттю, є наступними:
- Підрахунок посилань - Посилання на кожен об'єкт підраховується за допомогою лічильної змінної. Коли лічильник досягає нуля, він позначає, що об'єкт більше не потрібен і тому переробляється.
- Позначення та зачистка - рекурсивний обхід усіх доступних об'єктів проводиться на всіх областях даних, а об'єкти, що доступні. Потім немарковані об'єкти переробляються.
- Зупинка та копіювання - Купа пам’яті поділяється на два розділи: розділ, що містить об’єкти, і порожній розділ, куди об’єкти передаються (копіюються), якщо їх виявлено позначеними. Немаєтні об’єкти в першому розділі переробляються шляхом їх спорожнення.
Коли блок пам'яті, присвоєний вказівнику / об'єкту, був звільнений, вказівник / об'єкт повинен бути скинутий до нульового значення; в іншому випадку він звисає, тобто вказує на недійсний блок пам'яті.
Збір сміття допомагає зменшити помилки та ризики для безпеки, викликані звисаючими вказівниками та проблемами з витоком пам’яті.
До недоліків використання сміттєзбірника відносяться додаткові витрати на ресурси та продуктивність. Запуск сміттєзбірника також може уповільнити роботу системи і, таким чином, знизити її продуктивність.