gc — керування збирачем сміття

Цей модуль надає інтерфейс до купового збирача сміття: вмикання або вимикання автоматичного збирання, примусовий запуск негайного збирання, запит обсягу виділеної та вільної пам’яті купи, а також налаштування порогу виділення, що запускає збирання.

Функції

gc.enable() None

Вмикає автоматичне збирання сміття.

gc.disable() None

Вимикає автоматичне збирання сміття. Пам’ять купи все ще може виділятися, а збирання сміття можна ініціювати вручну за допомогою gc.collect().

gc.collect() None

Запускає збирання сміття.

gc.mem_alloc() int

Повертає кількість байтів пам’яті купи RAM, виділених кодом Python.

Відмінність від CPython

Ця функція є розширенням MicroPython.

gc.mem_free() int

Повертає кількість байтів пам’яті купи RAM, доступних для виділення кодом Python, або -1, якщо ця кількість невідома.

Відмінність від CPython

Ця функція є розширенням MicroPython.

gc.threshold(amount: int | None = None) int | None

Встановлює або запитує додатковий поріг виділення GC. Зазвичай збирання запускається лише тоді, коли нове виділення не може бути задоволено, тобто при умові нестачі пам’яті (OOM). Якщо ця функція викликана, крім OOM, збирання запускатиметься кожного разу після виділення amount байтів (загалом, з моменту попереднього виділення такої кількості байтів). amount зазвичай задається менше повного розміру купи, з метою запустити збирання раніше, ніж купа вичерпається, у надії, що раннє збирання запобіжить надмірній фрагментації пам’яті. Це евристичний захід, ефект якого відрізнятиметься від застосунку до застосунку, як і оптимальне значення параметра amount.

Виклик функції без аргументу поверне поточне значення порогу. Значення -1 означає відключений поріг виділення.

Відмінність від CPython

Ця функція є розширенням MicroPython. CPython має аналогічну функцію — set_threshold(), але через відмінності в реалізації GC її сигнатура і семантика відрізняються.