TGViewer
Python задачи и вопросы Python задачи и вопросы @py_quiz · 1.12K subscribers
Post #1841 100
Есть ли в Python сборщик мусора, и, если есть, как он работает?

Стандартный интерпретатор использует несколько алгоритмов.

🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.

Библиотека задач по Python
More from @py_quiz
  1. Sep 15, 2026Как в FastAPI (SQLAlchemy 2.0 async) корректно обеспечить «сеанс на запрос» с авто-rollbac…
  2. Aug 5, 2026Сервис создаёт миллионы однотипных небольших объектов (несколько фиксированных полей). Пам…
  3. Aug 5, 2026Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механик…
  4. Jul 30, 2026Какое утверждение о системе зависимостей FastAPI корректно при использовании Depends, Back…
  5. Jul 30, 2026Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — прави…
  6. Jul 29, 2026Uvicorn/FastAPI-сервис использует asyncio и сторонние библиотеки, под капотом создающие по…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →