2014-10-31 18:21:37 -04:00
|
|
|
:mod:`gc` -- control the garbage collector
|
|
|
|
==========================================
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2018-02-20 20:34:59 -05:00
|
|
|
.. include:: ../templates/unsupported_in_circuitpython.inc
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. module:: gc
|
|
|
|
:synopsis: control the garbage collector
|
|
|
|
|
2018-02-20 20:34:59 -05:00
|
|
|
|see_cpython_module| :mod:`cpython:gc`.
|
2017-07-02 08:37:31 -04:00
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
Functions
|
|
|
|
---------
|
|
|
|
|
2014-10-31 17:30:46 -04:00
|
|
|
.. function:: enable()
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 17:30:46 -04:00
|
|
|
Enable automatic garbage collection.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. function:: disable()
|
|
|
|
|
2014-10-31 17:30:46 -04:00
|
|
|
Disable automatic garbage collection. Heap memory can still be allocated,
|
|
|
|
and garbage collection can still be initiated manually using :meth:`gc.collect`.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 17:30:46 -04:00
|
|
|
.. function:: collect()
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 17:30:46 -04:00
|
|
|
Run a garbage collection.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. function:: mem_alloc()
|
|
|
|
|
|
|
|
Return the number of bytes of heap RAM that are allocated.
|
|
|
|
|
2017-06-24 06:12:09 -04:00
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
This function is MicroPython extension.
|
|
|
|
|
2014-10-30 21:37:19 -04:00
|
|
|
.. function:: mem_free()
|
|
|
|
|
2017-06-24 06:12:09 -04:00
|
|
|
Return the number of bytes of available heap RAM, or -1 if this amount
|
|
|
|
is not known.
|
|
|
|
|
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
This function is MicroPython extension.
|
2017-06-24 06:35:41 -04:00
|
|
|
|
|
|
|
.. function:: threshold([amount])
|
|
|
|
|
2017-06-26 01:25:51 -04:00
|
|
|
Set or query the additional GC allocation threshold. Normally, a collection
|
|
|
|
is triggered only when a new allocation cannot be satisfied, i.e. on an
|
|
|
|
out-of-memory (OOM) condition. If this function is called, in addition to
|
|
|
|
OOM, a collection will be triggered each time after *amount* bytes have been
|
|
|
|
allocated (in total, since the previous time such an amount of bytes
|
|
|
|
have been allocated). *amount* is usually specified as less than the
|
|
|
|
full heap size, with the intention to trigger a collection earlier than when the
|
|
|
|
heap becomes exhausted, and in the hope that an early collection will prevent
|
|
|
|
excessive memory fragmentation. This is a heuristic measure, the effect
|
|
|
|
of which will vary from application to application, as well as
|
|
|
|
the optimal value of the *amount* parameter.
|
|
|
|
|
|
|
|
Calling the function without argument will return the current value of
|
|
|
|
the threshold. A value of -1 means a disabled allocation threshold.
|
2017-06-24 06:35:41 -04:00
|
|
|
|
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
2017-06-26 01:25:51 -04:00
|
|
|
This function is a MicroPython extension. CPython has a similar
|
2017-06-24 06:35:41 -04:00
|
|
|
function - ``set_threshold()``, but due to different GC
|
|
|
|
implementations, its signature and semantics are different.
|