Вопрос по профилированию питона - PullRequest
2 голосов
/ 20 октября 2010

Я пытаюсь выполнить профилирование моего приложения на python.Я использую библиотеку cProfile.Мне нужно профилировать функцию onFrame моего приложения, но это вызывается внешним приложением.Я пробовал множество вещей, но на данный момент у меня есть следующее в моем методе onFrame:

runProfiler(self)

, а затем вне моего класса у меня есть следующее:

o = None

def doProfile ():
    print "doProfile invoked"
    o.structure.updateOrders

def runProfiler(self):
    print "runProfiler invoked"
    o = self
    cProfile.run('doProfile()', 'profile.log')

Если это кажется странным, это потому, что я попробовал все, чтобы избавиться от ошибки «имя doProfile notfined».Даже сейчас вызывается метод runProfiler и печатается «вызванный runProfiler», но затем я получаю только что описанную ошибку.Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 20 октября 2010

В этом случае вы должны передать необходимый контекст в cProfile.runctx:

cProfile.runctx("doProfile()", globals(), locals(), "profile.log")
0 голосов
/ 21 октября 2010

Альтернативой является использование метода runcall объекта Profile.

profiler = cProfile.Profile()
profiler.runcall(doProfile)
profiler.dump_stats("profile.log")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...