sto cercando di seguire le istruzioni qui: http://docs.python.org/2/library/profile.html#module-cProfileCome si fa a far funzionare il profiler Python?
In particolare, questa parte:
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()
ho già deciso che print_results non è un vero e proprio metodo della classe Stats, né sembra davvero esistere ovunque. Qui è il mio codice corrente:
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()
risultato attuale è: TypeError a/ispezione-sintesi/ argomento unicode previsto, ha ottenuto 'str'
(output è così perché sto usando Django chiamare il codice in questione).
Così qualcuno sa come posso ottenere il profiler effettivamente, beh, lavoro? Voglio solo che il profilo sia come previsto, quindi stampare i risultati in un file in modo da poter visualizzare i risultati dopo l'esecuzione. Posso far funzionare dump_stats, ma il file che produce è spazzatura.
+1 che lo snippet di codice nei documenti qui http://docs.python.org/2/library/profile.html#profile.Profile è confuso rispetto a quella riga ps.print_results(). – eedeep