Python 3.7+gcфункция
gc.freeze()
управление сборкой
Переносит все отслеживаемые объекты в «вечное» поколение, которое сборщик больше не обходит. Нужна перед fork.
Синтаксис
gc.freeze()
Задача — экономия памяти при fork без exec: сборщик, обходя объекты, пишет в их заголовки, и copy-on-write копирует страницы в каждом дочернем процессе. Рецепт из документации: gc.disable() в начале родителя, gc.freeze() прямо перед fork, gc.enable() в ребёнке. Замороженные циклы не освободятся никогда, пока не вызвать gc.unfreeze, — для обычной программы это утечка, а не ускорение.
Примеры
import gc
gc.freeze()
print(gc.get_freeze_count() > 0) # → True
print(gc.get_freeze_count()) # → ? сколько объектов заморожено
gc.unfreeze()
print(gc.get_freeze_count()) # → 0
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности