gc — שליטה באוסף האשפה¶
מודול זה מספק ממשק לאוסף האשפה של ה-heap: הפעלה או השבתה של איסוף אוטומטי, אילוץ איסוף מיידי, שאילתה של כמות זיכרון ה-heap המוקצה והפנוי, וכיוונון סף ההקצאה המפעיל איסוף.
פונקציות¶
- gc.disable() None¶
השבתת איסוף אשפה אוטומטי. עדיין ניתן להקצות זיכרון heap, ועדיין ניתן להפעיל איסוף אשפה ידנית באמצעות
gc.collect().
- 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 שונים, החתימה והסמנטיקה שלה שונות.