Python 3.9+pstatsпонятие
pstats.StatsProfile
программный доступ
Датакласс со всем профилем: общее время total_tt и словарь func_profiles «имя функции → FunctionProfile».
Синтаксис
sp = pstats.Stats(profile).get_stats_profile()
Это единственный способ получить результаты профиля данными, а не печатью — например, проверить в тесте, что функция вызывалась не больше N раз. Ключ словаря — только имя функции, без класса и файла: A.run и B.run схлопываются в одну запись 'run', и какая из них останется, зависит от версии. Встроенные функции попадают туда под длинными именами вроде "<built-in method builtins.len>".
Примеры
import cProfile, pstats
class A:
def run(self): pass
class B:
def run(self): pass
with cProfile.Profile() as pr:
A().run()
B().run()
sp = pstats.Stats(pr).get_stats_profile()
print(type(sp).__name__) # → StatsProfile
print([name for name in sp.func_profiles if 'run' in name]) # → ['run']
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности