Закрыть, но ключевая деталь отключена: когда счетчик ссылок падает до 0 в CPython, тогда объект без ссылок получает немедленно собранный. Это не имеет ничего общего с циклической системой ГХ. Действительно, вы можете сделать gc.disable()
, чтобы полностью отключить циклическую систему ГХ, и подсчет ссылок продолжит собирать нециклический мусор сам по себе.
Вы можете увидеть это сами, например,
import gc
gc.disable()
i = 1
while True:
xs = [i]
i += 1
Это работает вечно, но использование памяти останется стабильным. Это потому, что подсчет ссылок сам по себе перезаписывает память для целого числа и списка, созданного на каждой итерации.