尝试分析简单程序时出现 Python-Hotshot 错误

标签 python profiler profiling

我试图学习如何使用 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 程序的其他方法有建议吗?

谢谢!

最佳答案

我想我已经找到了我错过了两个多小时的东西..

事实证明,runcall() 应该被调用为,

runcall(main, self.argv)

这会让事情顺利进行!

关于尝试分析简单程序时出现 Python-Hotshot 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061361/

相关文章:

python - Fabric 要求输入 root 密码

python - 在所有子图的顶部显示图例

sql - SQL Server Profiler 中的 CPU 与持续时间

java - 基于 Java 的 Web 应用程序的分析工具

python - 使用 PyCharm(或任何其他 IDE)分析 python 程序

Java:如何查看代码的哪些部分运行最多? (分析)

python - 按字典中元组的元素组织?

python - 用另一个 df 中的行替换 Pandas df 中的行

java - 生产中的 VisualVM?

ruby-on-rails - 为什么 Kernel#require 占用了我 45% 的获取时间?