gc --- điều khiển bộ thu gom rác

Mô-đun này cung cấp giao diện cho bộ thu gom rác heap: bật hoặc tắt thu gom tự động, buộc thu gom ngay lập tức, truy vấn lượng bộ nhớ heap đã cấp phát và còn trống, và điều chỉnh ngưỡng cấp phát kích hoạt việc thu gom.

Hàm

gc.enable() None

Bật thu gom rác tự động.

gc.disable() None

Tắt thu gom rác tự động. Bộ nhớ heap vẫn có thể được cấp phát, và thu gom rác vẫn có thể được khởi tạo thủ công bằng gc.collect().

gc.collect() None

Chạy thu gom rác.

gc.mem_alloc() int

Trả về số byte bộ nhớ heap RAM đang được cấp phát bởi mã Python.

Khác biệt so với CPython

Hàm này là phần mở rộng của MicroPython.

gc.mem_free() int

Trả về số byte bộ nhớ heap RAM có thể cấp phát cho mã Python, hoặc -1 nếu con số này không xác định được.

Khác biệt so với CPython

Hàm này là phần mở rộng của MicroPython.

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

Đặt hoặc truy vấn ngưỡng cấp phát GC bổ sung. Thông thường, một lần thu gom chỉ được kích hoạt khi không thể thỏa mãn một cấp phát mới, tức là khi xảy ra tình trạng hết bộ nhớ (OOM). Nếu hàm này được gọi, ngoài OOM, một lần thu gom cũng sẽ được kích hoạt mỗi khi tổng cộng amount byte đã được cấp phát (kể từ lần trước khi lượng byte đó được cấp phát). amount thường được chỉ định nhỏ hơn kích thước heap đầy đủ, với mục đích kích hoạt thu gom sớm hơn trước khi heap cạn kiệt, với hy vọng rằng thu gom sớm sẽ ngăn phân mảnh bộ nhớ quá mức. Đây là biện pháp heuristic, hiệu quả của nó sẽ khác nhau tùy ứng dụng, cũng như giá trị tối ưu của tham số amount.

Gọi hàm không có đối số sẽ trả về giá trị ngưỡng hiện tại. Giá trị -1 có nghĩa là ngưỡng cấp phát bị tắt.

Khác biệt so với CPython

Hàm này là phần mở rộng của MicroPython. CPython có một hàm tương tự -- set_threshold(), nhưng do khác biệt trong triển khai GC, chữ ký và ngữ nghĩa của nó khác nhau.