Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check running time per line in python

I've written a Python script, but running it is taking a lot longer than I had anticipated, and I've no obvious candidate for particuklar lines in the script taking up runtime.

Is there anything I can put in my code to check how long its taking to run through each line?

Many thanks.

like image 610
user124123 Avatar asked Dec 12 '22 13:12

user124123


2 Answers

Have you tried running python with profiling?

python -m cProfile --sort cumulative your_single_thread_script.py &> out.log

You can find more details in this question How can you profile a python script?

You can read more about the profiling utility here.

like image 130
Shai Avatar answered Dec 24 '22 14:12

Shai


Use a profiler such as hotshot. It's easy!

1) run your code with the profiles:

import hotshot

prof = hotshot.Profile("hotshot_stats.prof")
prof.runcall(my_function)
prof.close()

2) Read the resulting file:

from hotshot import stats

s = stats.load("hotshot_stats.prof")
s.strip_dirs()
s.sort_stats('time', 'calls')
s.print_stats(20)
like image 39
nst Avatar answered Dec 24 '22 13:12

nst