Будинки Розвиток Що таке збирання сміття (gc)? - визначення з техопедії

Що таке збирання сміття (gc)? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає збір сміття (GC)?

Збір сміття (GC) - це динамічний підхід до автоматичного управління пам’яттю та розподілу купи, який обробляє та ідентифікує мертві блоки пам'яті та перерозподіляє сховище для повторного використання. Основна мета збирання сміття - зменшити витоки пам’яті.

Впровадження GC вимагає трьох основних підходів:

  • Помітка і підмітка - під час закінчення пам’яті GC знаходить всю доступну пам'ять, а потім відновлює наявну пам'ять.
  • Підрахунок посилань - виділені об'єкти містять номер відліку посилального номера. Коли кількість пам'яті дорівнює нулю, об’єкт сміття і потім знищується. Звільнена пам'ять повертається до купи пам'яті.
  • Копіювати колекцію - Є два розділи пам'яті. Якщо перший розділ заповнений, GC знаходить усі доступні структури даних та копіює їх у другий розділ, ущільнюючи пам'ять після процесу GC та дозволяючи безперервно вільну пам'ять.

Деякі мови програмування та платформи із вбудованим GC (наприклад, Java, Lisp, C # та .Net) самостійно керують витоками пам'яті, що дозволяє більш ефективно програмувати.

Техопедія пояснює збір сміття (GC)

Динамічний підхід до збирання сміття до автоматичного розподілу купи вирішує поширені та дорогі помилки, які часто виявляються дефектами програми в реальному світі, коли їх не виявляють.

Оскільки їх важко визначити та виправити, помилки розподілу коштують дорого. Таким чином, збирання сміття багатьма вважається важливою мовною особливістю, яка полегшує роботу програміста з меншим керуванням ручним розподілом купівлі. Однак GC не є досконалим, і слід враховувати наступні недоліки:

  • Звільняючи пам'ять, GC споживає обчислювальні ресурси.
  • Процес GC непередбачуваний, що призводить до розсіяних затримок сеансу.
  • Якщо невикористані посилання на об'єкти не розміщуються вручну, GC викликає витоки логічної пам'яті.
  • GC не завжди знає, коли оброблятись у середовищах віртуальної пам'яті сучасних настільних комп'ютерів.
  • Процес GC погано взаємодіє з кешами та системами віртуальної пам'яті, що призводить до труднощів з налаштуванням продуктивності.
Це визначення було написане в контексті загального програмування
Що таке збирання сміття (gc)? - визначення з техопедії