我正在尝试在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未定义”。即使是现在,runProfiler方法也被调用,并且“ runProfiler被调用”被打印,但是随后我得到了刚才描述的错误。我究竟做错了什么?

最佳答案

在这种情况下,您应该将必要的上下文传递给cProfile.runctx

cProfile.runctx("doProfile()", globals(), locals(), "profile.log")

关于python - 有关python分析的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3981569/

10-09 03:09