PEP 454: rename reset() to clear_traces()
Explain also in clear_traces() documentation how to get traces before clearing them.
This commit is contained in:
parent
adc68f3b3d
commit
b134f468c8
26
pep-0454.txt
26
pep-0454.txt
|
@ -24,12 +24,12 @@ Classic generic tools like Valgrind can get the C traceback where a
|
||||||
memory block was allocated. Using such tools to analyze Python memory
|
memory block was allocated. Using such tools to analyze Python memory
|
||||||
allocations does not help because most memory blocks are allocated in
|
allocations does not help because most memory blocks are allocated in
|
||||||
the same C function, in ``PyMem_Malloc()`` for example. Moreover, Python
|
the same C function, in ``PyMem_Malloc()`` for example. Moreover, Python
|
||||||
has an allocator for small object called "pymalloc" which keeps free
|
has an allocator for small objects called "pymalloc" which keeps free
|
||||||
blocks for efficiency. This is not well handled by these tools.
|
blocks for efficiency. This is not well handled by these tools.
|
||||||
|
|
||||||
There are debug tools dedicated to the Python language like ``Heapy``
|
There are debug tools dedicated to the Python language like ``Heapy``
|
||||||
``Pympler`` and ``Meliae`` which lists all live objects using the
|
``Pympler`` and ``Meliae`` which lists all alive objects using the
|
||||||
garbage module (functions like ``gc.get_objects()``,
|
garbage collector module (functions like ``gc.get_objects()``,
|
||||||
``gc.get_referrers()`` and ``gc.get_referents()``), compute their size
|
``gc.get_referrers()`` and ``gc.get_referents()``), compute their size
|
||||||
(ex: using ``sys.getsizeof()``) and group objects by type. These tools
|
(ex: using ``sys.getsizeof()``) and group objects by type. These tools
|
||||||
provide a better estimation of the memory usage of an application. They
|
provide a better estimation of the memory usage of an application. They
|
||||||
|
@ -108,7 +108,7 @@ memory allocations.
|
||||||
Main functions
|
Main functions
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
``reset()`` function:
|
``clear_traces()`` function:
|
||||||
|
|
||||||
Clear traces of memory blocks allocated by Python.
|
Clear traces of memory blocks allocated by Python.
|
||||||
|
|
||||||
|
@ -120,6 +120,9 @@ Main functions
|
||||||
Stop tracing Python memory allocations and clear traces of memory
|
Stop tracing Python memory allocations and clear traces of memory
|
||||||
blocks allocated by Python.
|
blocks allocated by Python.
|
||||||
|
|
||||||
|
Call ``get_traces()`` or ``take_snapshot()`` function to get traces
|
||||||
|
before clearing them.
|
||||||
|
|
||||||
See also ``enable()`` and ``is_enabled()`` functions.
|
See also ``enable()`` and ``is_enabled()`` functions.
|
||||||
|
|
||||||
|
|
||||||
|
@ -154,7 +157,7 @@ Trace functions
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
When Python allocates a memory block, ``tracemalloc`` attachs a "trace" to
|
When Python allocates a memory block, ``tracemalloc`` attachs a "trace" to
|
||||||
it to store information on it: its size in bytes and the traceback where the
|
the memory block to store its size in bytes and the traceback where the
|
||||||
allocation occured.
|
allocation occured.
|
||||||
|
|
||||||
The following functions give access to these traces. A trace is a ``(size: int,
|
The following functions give access to these traces. A trace is a ``(size: int,
|
||||||
|
@ -199,8 +202,8 @@ has a size of 32 bytes and was allocated at ``x.py:7``, line called from line
|
||||||
``(filename: str, lineno: int)`` tuples.
|
``(filename: str, lineno: int)`` tuples.
|
||||||
|
|
||||||
The list of traces do not include memory blocks allocated before the
|
The list of traces do not include memory blocks allocated before the
|
||||||
``tracemalloc`` module was enabled and memory blocks ignored by
|
``tracemalloc`` module was enabled nor memory blocks ignored by
|
||||||
filters (see ``get_filters()()``).
|
filters (see ``get_filters()``).
|
||||||
|
|
||||||
Return an empty list if the ``tracemalloc`` module is disabled.
|
Return an empty list if the ``tracemalloc`` module is disabled.
|
||||||
|
|
||||||
|
@ -248,7 +251,8 @@ Filter functions
|
||||||
is ignored if at least one exclusive filter matchs its trace.
|
is ignored if at least one exclusive filter matchs its trace.
|
||||||
|
|
||||||
The new filter is not applied on already collected traces. Use the
|
The new filter is not applied on already collected traces. Use the
|
||||||
``reset()`` function to ensure that all traces match the new filter.
|
``clear_traces()`` function to ensure that all traces match the new
|
||||||
|
filter.
|
||||||
|
|
||||||
|
|
||||||
``clear_filters()`` function:
|
``clear_filters()`` function:
|
||||||
|
@ -284,8 +288,7 @@ Filter
|
||||||
the comparison is case insensitive and the alternative separator
|
the comparison is case insensitive and the alternative separator
|
||||||
``'/'`` is replaced with the standard separator ``'\'``.
|
``'/'`` is replaced with the standard separator ``'\'``.
|
||||||
|
|
||||||
For example, use ``Filter(False, "<unknown>")`` to exclude empty
|
Use ``Filter(False, "<unknown>")`` to exclude empty tracebacks.
|
||||||
tracebacks.
|
|
||||||
|
|
||||||
``inclusive`` attribute:
|
``inclusive`` attribute:
|
||||||
|
|
||||||
|
@ -384,7 +387,8 @@ Snapshot
|
||||||
Traces of all memory blocks allocated by Python, result of the
|
Traces of all memory blocks allocated by Python, result of the
|
||||||
``get_traces()`` function: list of ``(size: int, traceback: tuple)``
|
``get_traces()`` function: list of ``(size: int, traceback: tuple)``
|
||||||
tuples, *traceback* is a tuple of ``(filename: str, lineno: int)``
|
tuples, *traceback* is a tuple of ``(filename: str, lineno: int)``
|
||||||
tuples.
|
tuples. *size* is the size of the memory block in bytes, *traceback*
|
||||||
|
is the Python stack where the allocation occured.
|
||||||
|
|
||||||
``timestamp`` attribute:
|
``timestamp`` attribute:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue