Как мне профилировать класс в python, комбинируя профили?

Моя цель — профилировать только некоторые функции в цикле while в ОДИН результат. Для удобства допустим, что эти функции находятся в одном классе.

Скажем, у меня есть следующий код, всего два отдельных класса, доступ к которым осуществляется в цикле while:

class MyClass1:
  def func1(self):
  #stuff
class MyClass2:
  def func1(self):
  #stuff

count = 0
while count < 100
count += 1

  c1 = MyClass1()
  c1.func1()
  c2 = Myclass2()
  c2.func1()

Очевидно, это только примеры. В реальной жизни каждый класс будет иметь сотни методов, в цикле while будет создано гораздо больше классов, и количество может достигать одного миллиона.

Я хочу профилировать функции/методы класса 2, не класса 1, в одном красивом, удобочитаемом выводе (будь то файл или консоль). Другие ответы на переполнение стека этого не делают.

Выполняете профилирование метода класса в Python с использованием cProfile? и Как вы можете профилировать скрипт? напечатает 100+ отдельные выходы.

как я могу профилировать методы класса моего приложения python? кажется, задает тот же вопрос, но ответ неполный.

Профиль PyCharm будет профилировать все, заглушая вывод, который я хочу, и говоря, что функции, которые я хочу профилировать, занимают 0,000 секунды.

Любая помощь приветствуется.


person john ktejik    schedule 17.11.2017    source источник
comment
Профиль PyCharm будет профилировать все, заглушая вывод, который я хочу, и говоря, что функции, которые я хочу профилировать, занимают 0,000 секунды, что вы подразумеваете под этим? Если да, пытались ли вы обернуть функции в новую, где вы вызываете их примерно 10000 раз?   -  person information_interchange    schedule 17.11.2017
comment
Помните, что существуют сотни функций, которые вызываются тысячи раз. Если функция, кумулятивная, занимает десятую долю секунды, это много. Но если я профилирую его тысячу раз, и каждый цикл занимает 0,0001, профиль останавливается на 3 цифрах, говоря, что это заняло 0,000 секунды. К сожалению, данные из предыдущих классов, к которым у меня нет доступа, создают данные для классов, которые я хочу профилировать. Данных много, и я не могу сгенерировать их самостоятельно.   -  person john ktejik    schedule 18.11.2017
comment
Я разместил ответ в здесь   -  person moshevi    schedule 09.01.2019