我正在尝试在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/