我正在尝试学习如何使用 hotshot 分析一个简单的 python 程序,但我遇到了一个奇怪的错误,
import sys
import hotshot
def main(argv):
for i in range(1,1000):
print i
if __name__ == "__main__":
prof = hotshot.Profile("hotshot_edi_stats")
b,c = prof.runcall(main(sys.argv))
prof.close()
和输出,
.
.
995
996
997
998
999
Traceback (most recent call last):
File "t.py", line 9, in <module>
b, c = prof.runcall(main(sys.argv))
File "/usr/lib/python2.5/hotshot/__init__.py", line 76, in runcall
return self._prof.runcall(func, args, kw)
TypeError: 'NoneType' object is not callable
有人知道为什么会这样吗?在我看来,这是热点分析器本身的问题。或者,人们对分析 python 程序的其他方法有什么建议吗?
谢谢!
请您参考如下方法:
而且我想我已经弄清楚了我错过了 2 个多小时的东西..
事实证明,runcall() 应该被调用为,
runcall(main, self.argv)
这让一切顺利进行!
