Comments 1
Поначалу я споткнулся на поиске объектов, так как команда objgraph.by_type('types.TracebackType') не находила вообще ничего. И это — несмотря на то, что я знал о том, что имеется огромное количество подобных объектов. Оказалось же, что в качестве имени типа надо использовать строку traceback. Причина этого мне не вполне ясна, однако что есть — то есть.
Пошел посмотреть что же там в файле types.py и знаете, лучше бы я этого не делал. Не думал, что от кода в стандартной библиотеке могут волосы на жопе начать шевелиться:
try:
raise TypeError
except TypeError:
tb = sys.exc_info()[2]
TracebackType = type(tb)
FrameType = type(tb.tb_frame)
tb = None; del tb
А по сути — by_type ищет по fully-qualified или сокращенному имени класса и обо всех его алиасах, определенных в других местах (типа types.py), функция не знает. Профиль кучи специально отображает fq имена в имена через types. Видимо для наглядности.
inb4 поговорил с переводом, традиции Хабра
+5
Sign up to leave a comment.
Pylint: о попытке снизить потребление памяти