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 <rep...@bugs.python.org>
<http://bugs.python.org/issue21952>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to