Что такое Immortal Objects (PEP 683) и как они оптимизируют Copy-on-Write в Linux?

Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.

Короткий ответ

Что ответить на собеседовании

Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.

Подробный разбор

Ответ с пояснениями

Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.

При copy-on-write даже изменение счётчика ссылки на неизменяемый объект может заставить процесс получить отдельную физическую страницу. Бессмертные объекты исключают часть таких служебных записей для выбранных долгоживущих объектов. Это оптимизация реализации CPython, а не отмена освобождения всех объектов и не гарантия нулевого расхода памяти workers. Другие записи в ту же страницу и пользовательские изменяемые данные по-прежнему могут нарушить совместное использование.

Источник: github.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее