ここの指示に従おうとしています: 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 引数が必要で、'str' を取得しました
(問題のコードを呼び出すために Django を使用しているため、出力は次のようになります)。
では、プロファイラーを実際に機能させる方法を知っている人はいますか? 想定どおりにプロファイリングし、結果をファイルに出力して、実行後に後で結果を表示できるようにしたいだけです。dump_stats を動作させることはできますが、生成されるファイルはガベージです。