Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.
Что такое Immortal Objects (PEP 683) и как они оптимизируют Copy-on-Write в Linux?
Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Immortal objects в CPython имеют специальный режим счётчика ссылок, который не меняется при обычных INCREF/DECREF. Это уменьшает записи в память и помогает сохранять общие страницы после fork.
При copy-on-write даже изменение счётчика ссылки на неизменяемый объект может заставить процесс получить отдельную физическую страницу. Бессмертные объекты исключают часть таких служебных записей для выбранных долгоживущих объектов. Это оптимизация реализации CPython, а не отмена освобождения всех объектов и не гарантия нулевого расхода памяти workers. Другие записи в ту же страницу и пользовательские изменяемые данные по-прежнему могут нарушить совместное использование.
Источник: github.com.