Что такое reference counting?

Senior
157 просмотров
AFK Offer AI

Reference counting — основной механизм управления памятью в CPython. Каждый объект хранит поле ob_refcnt — количество ссылок на него. При присваивании, передаче в функцию, добавлении в коллекцию — счётчик увеличивается. При удалении ссылки, выходе из scope — уменьшается. Когда достигает 0 — объект удаляется сразу (детерминированное освобождение). Плюс: простота, предсказуемость. Минус: не ловит циклические ссылки, overhead на каждую операцию, не thread-safe без GIL.

Следующий вопрос

Что делает функция id()?