gc — שליטה באוסף האשפה

מודול זה מספק ממשק לאוסף האשפה של ה-heap: הפעלה או השבתה של איסוף אוטומטי, אילוץ איסוף מיידי, שאילתה של כמות זיכרון ה-heap המוקצה והפנוי, וכיוונון סף ההקצאה המפעיל איסוף.

פונקציות

gc.enable() None

הפעלת איסוף אשפה אוטומטי.

gc.disable() None

השבתת איסוף אשפה אוטומטי. עדיין ניתן להקצות זיכרון heap, ועדיין ניתן להפעיל איסוף אשפה ידנית באמצעות gc.collect().

gc.collect() None

הרצת איסוף אשפה.

gc.mem_alloc() int

מחזיר את מספר הבתים של זיכרון heap RAM המוקצים על ידי קוד Python.

הבדל מ-CPython

פונקציה זו היא הרחבה של MicroPython.

gc.mem_free() int

מחזיר את מספר הבתים של זיכרון heap RAM הזמינים להקצאה על ידי קוד Python, או -1 אם כמות זו אינה ידועה.

הבדל מ-CPython

פונקציה זו היא הרחבה של MicroPython.

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

הגדרה או שאילתה של סף הקצאת ה-GC הנוסף. בדרך כלל, איסוף מופעל רק כאשר הקצאה חדשה אינה ניתנת לסיפוק, כלומר במצב של חוסר זיכרון (OOM). אם פונקציה זו נקראת, בנוסף ל-OOM, איסוף יופעל בכל פעם לאחר ש-amount בתים הוקצו (בסך הכל, מאז הפעם הקודמת שכמות כזו של בתים הוקצתה). amount מצוין בדרך כלל כפחות מגודל ה-heap המלא, מתוך כוונה להפעיל איסוף מוקדם יותר מהרגע שבו ה-heap מתרוקן, ומתוך תקווה שאיסוף מוקדם ימנע פיצול זיכרון מופרז. זהו אמצעי היוריסטי, אשר השפעתו תשתנה מיישום ליישום, וכך גם הערך האופטימלי של הפרמטר amount.

קריאה לפונקציה ללא ארגומנט תחזיר את הערך הנוכחי של הסף. ערך של -1 פירושו סף הקצאה מושבת.

הבדל מ-CPython

פונקציה זו היא הרחבה של MicroPython. ל-CPython יש פונקציה דומה - set_threshold(), אך עקב מימושי GC שונים, החתימה והסמנטיקה שלה שונות.