我正在使用Python的hotshot分析器:http://docs.python.org/2/library/hotshot.html
它显示了如何打印统计数据:
stats.print_stats(20)
但我怎么把它归档呢?我不知道如何获取信息以便使用write()将其写入文件。
编辑:
我想要和这样做时打印的一样容易阅读的结果:
stats = hotshot.stats.load("stones.prof")
stats.strip_dirs()
stats.sort_stats('time', 'calls')
stats.print_stats(20)
看起来是这样的:
ncalls tottime percall cumtime percall filename:lineno(function)
1 3.295 3.295 10.090 10.090 pystone.py:79(Proc0)
(所以当我打开石头的时候看起来不像是这样。教授)
最后我重写了print_stats()函数,从pstats.py复制开始。它返回一个字符串,然后可以将其写入文件。我并没有测试每个if-else循环,只是它在我需要它的示例中起作用。我把原来的几行注释掉了。虽然函数不再使用真正的“self”,但变量名保持不变。
输出重定向怎么样?
Stats采用可选的“stream”参数。只需打开一个文件并将open file对象传递给Stats构造函数,如下所示。从那时起,对print_stats()的任何调用都将输出到传递给构造函数的流中。希望这有帮助。:)
相关问题 更多 >
编程相关推荐