Python Glossary English

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Сообщить о неточности