我正在尝试按照此处的说明进行操作:http: //docs.python.org/2/library/profile.html#module-cProfile
具体来说,这部分:
import cProfile, pstats, io
pr = cProfile.Profile()
pr.enable()
... do something ...
pr.disable()
s = io.StringIO()
ps = pstats.Stats(pr, stream=s)
ps.print_results()
我已经确定 print_results 不是 Stats 类的真实方法,它似乎也不存在于任何地方。这是我当前的代码:
import cProfile, pstats, io
def foo(request):
pr = cProfile.Profile()
pr.enable()
pass
pr.disable()
s = io.StringIO()
ps = pstats.Stats(pr, stream = s)
f = open('/profstats', 'a')
ps.print_stats()
f.write(s.getvalue())
s.close()
f.close()
当前结果是:TypeError at /inspection-summary/ unicode argument expected, got 'str'
(输出看起来像这样,因为我使用 Django 来调用有问题的代码)。
那么有谁知道我怎样才能让探查器实际工作?我只是希望它按预期进行分析,然后将结果打印到文件中,以便稍后在执行后查看结果。我可以让 dump_stats 工作,但它产生的文件是垃圾。