Python-Hotshot errore nel tentativo di profilo un semplice programma
Domanda
Stavo cercando di imparare al profilo di un semplice programma Python usando hotshot, ma sto affrontando un errore di strano,
import sys
import hotshot
def main(argv):
for i in range(1,1000):
print i
if __name__ == "__main__":
prof = hotshot.Profile("hotshot_edi_stats")
b,c = prof.runcall(main(sys.argv))
prof.close()
e l'uscita,
.
.
995
996
997
998
999
Traceback (most recent call last):
File "t.py", line 9, in <module>
b, c = prof.runcall(main(sys.argv))
File "/usr/lib/python2.5/hotshot/__init__.py", line 76, in runcall
return self._prof.runcall(func, args, kw)
TypeError: 'NoneType' object is not callable
Qualcuno sa perché questo accade? Sembra a me come un problema con il hotshot profiler stesso. In alternativa, le persone hanno suggerimenti su altri metodi al profilo programmi Python?
Grazie!
Soluzione
E io credo di aver capito qualcosa che mi mancava per oltre 2 ore ..
Risulta, runcall () dovrebbe essere chiamato come,
runcall(main, self.argv)
e questo rende le cose funzionano!
Altri suggerimenti
In generale, se si dispone di un modo per mettere in pausa in modo casuale o interrompere il programma e vedere lo stack di chiamate, questo metodo funziona sempre .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow