Evgeny Kapun added the comment: Tracemalloc code:
import re import signal import tracemalloc class AlarmError(Exception): pass def handle_alarm(signal, frame): raise AlarmError signal.signal(signal.SIGALRM, handle_alarm) s1 = tracemalloc.take_snapshot() for _ in range(20): try: signal.alarm(1) re.match('(?:a|a|(?=b)){1000}', 'a'*999) raise RuntimeError except AlarmError: pass s2 = tracemalloc.take_snapshot() res = s2.compare_to(s1, 'lineno') for e in res[:10]: print(e) For me, it shows almost 3 MiB allocated in re.py. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23689> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com