[issue21952] fnmatch.py can appear in tracemalloc diffs

STINNER Victor report at bugs.python.org
Thu Jul 10 22:23:31 CEST 2014


STINNER Victor added the comment:

> When using some filters and comparing snapshots, fnmatch will appear in the statistic diffs, e.g.:

During the design of the tracemalloc module (PEP 454), it was decided to not filter traces in the C module, but filter traces on a snapshot object. The reason is to keep the C module simple. To debug, you can analyze snapshots on a fast machine.

Can you try to filter traces?

snapshot = snapshot.filter_traces(Filter(False, tracemalloc.__file__))

In you case, the top frame is in the fnmatch module, so you probably need to trace more than one thread (ex: tracemalloc.start(10)) and apply the filter on all frames, not only on the top frame:

snapshot = snapshot.filter_traces(Filter(False, tracemalloc.__file__, all_frames=True))

You can also ignore fnmatch & sre_compile modules (blacklist, exclusive filters), or only keep traces of the directory /home/antoine/llvmpy/llvm/ (whitelist, an inclusive filter).

> Perhaps it would be nice to manually cache the compiled re pattern, instead of going through fnmatch's lru_cache thing which seems to make reports less robust.

Ah, interesting point. Would you be interested to work on that?

I tried to use tracemalloc to detect memory leaks in test.regrtest, but it's very difficult to get a reliable output. See the issue #19816.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21952>
_______________________________________


More information about the Python-bugs-list mailing list