Tôi đang cố gắng để làm theo hướng dẫn ở đây: http://docs.python.org/2/library/profile.html#module-cProfileLàm thế nào để bạn có được trình biên dịch Python để làm việc?
Cụ thể, phần này:
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()
tôi đã xác định rằng print_results không phải là một phương pháp thực sự của lớp Thống kê, cũng không nó dường như thực sự tồn tại ở mọi nơi. Đây là mã hiện tại của tôi:
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()
kết quả hiện tại là: TypeError tại/kiểm tra-summary/ luận unicode mong đợi, có 'str'
(Output trông như thế này bởi vì tôi đang sử dụng Django để gọi mã được đề cập).
Vì vậy, có ai biết cách tôi có thể nhận được hồ sơ để thực sự, tốt, làm việc? Tôi chỉ muốn nó để hồ sơ như nó được cho là, sau đó in kết quả vào một tập tin để tôi có thể xem kết quả sau này sau khi thực hiện. Tôi có thể nhận được dump_stats để làm việc, nhưng tập tin nó tạo ra là rác.
+1 rằng đoạn mã trong tài liệu tại đây http://docs.python.org/2/library/profile.html#profile.Profile khó hiểu liên quan đến dòng ps.print_results() đó. – eedeep