def collect_stats(self): self.snapshots.append(tracemalloc.take_snapshot())if len(self.snapshots) 1: stats = self.snapshots[-1].filter_traces(filters).compare_to(self.snapshots[-2], 'filename')for stat in stats[:10]: print("{} new KiB {} total KiB {} new {} total memory blocks: ".format(stat.size_diff/1024, stat.size / 1024, stat.count_diff ,stat.count))for line in stat.traceback.format(): print(line)
[ Top 5 with filename tracebacks ]190.7421875new KiB 1356.5634765625 total KiB 1930new 13574 total memory blocks: (1) File "/Users/mike/.pyenv/versions/3.4.2/lib/python3.4/linecache.py",line 02.1328125new KiB 12.375 total KiB 32new 86 total memory blocks: (2) File "/Users/mike/.pyenv/versions/3.4.2/lib/python3.4/tracemalloc.py",line 01.859375new KiB 18.7001953125 total KiB 3new 53 total memory blocks: (3) File "/Users/mike/.pyenv/versions/venv/lib/python3.4/site-packages/requests/packages/urllib3/connection.py",line 0-1.71875new KiB 34.5224609375 total KiB -2new 91 total memory blocks: File "/Users/mike/.pyenv/versions/venv/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py",line 01.66015625 new KiB 61.662109375 total KiB 18 new 260 total memory blocks: File "/Users/mike/.pyenv/versions/3.4.2/lib/python3.4/urllib/parse.py", line 0
from tracemalloc import Filter filters = [Filter(inclusive=True, filename_pattern="*requests*")]filtered_stats = snapshot.filter_traces(filters).compare_to(old_snapshot.filter_traces(filters), 'traceback')for stat in stats[:10]: print("{} new KiB {} total KiB {} new {} total memory blocks: ".format(stat.size_diff/1024, stat.size / 1024, stat.count_diff ,stat.count)) for line in stat.traceback.format(): print(line)