gc --- التحكم في جامع المهملات

توفر هذه الوحدة واجهة لجامع مهملات الكومة (heap): تفعيل أو تعطيل الجمع التلقائي، وفرض جمع فوري، والاستعلام عن مقدار ذاكرة الكومة المخصصة والمتاحة، وضبط عتبة التخصيص التي تُطلق الجمع.

الدوال

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، فإن توقيعها ودلالاتها مختلفة.