2014-10-31 18:21:37 -04:00
|
|
|
:mod:`gc` -- control the garbage collector
|
|
|
|
==========================================
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. module:: gc
|
|
|
|
:synopsis: control the garbage collector
|
|
|
|
|
|
|
|
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])
|
|
|
|
|
|
|
|
Set or query additional GC allocation threshold. Normally, GC is
|
|
|
|
triggered when new allocation cannot be satisfied, i.e. on out of
|
|
|
|
memory (OOM) condition. If this function is called, in addition to
|
|
|
|
OOM, GC will be triggered each time after *amount* of bytes has been
|
|
|
|
allocated (in total, since the previous time such amount of bytes
|
|
|
|
had been allocated). *amount* is usually specified as less than the
|
|
|
|
full heap size, with the intention to trigger GC earlier than the
|
|
|
|
heap will be exhausted, and in the hope that early GC will prevent
|
|
|
|
excessive memory fragmentation. This is a heuristic measure, effect
|
|
|
|
of which will vary from an application to application, as well as
|
|
|
|
the optimal value of *amount* parameter.
|
|
|
|
|
|
|
|
Calling the function without argument will return current value of
|
|
|
|
the threshold. Value of -1 means a disabled allocation threshold.
|
|
|
|
|
|
|
|
.. admonition:: Difference to CPython
|
|
|
|
:class: attention
|
|
|
|
|
|
|
|
This function is MicroPython extension. CPython has a similar
|
|
|
|
function - ``set_threshold()``, but due to different GC
|
|
|
|
implementations, its signature and semantics are different.
|