Using the profile
module provided by Python it is extremely easy to perform profiling of a command:
import profile
def main():
profile.run("_main()")
def _main():
for i in range(10):
test.log("%s" % i)
snooze(0.2)
Result:
R: 25 function calls in 2.012 CPU seconds
R: Ordered by: standard name
R: ncalls tottime percall cumtime percall filename:lineno(function)
R: 10 0.002 0.000 0.002 0.000 :0(log)
R: 1 0.000 0.000 0.000 0.000 :0(range)
R: 1 0.002 0.002 0.002 0.002 :0(setprofile)
R: 10 2.007 0.201 2.007 0.201 :0(snooze)
R: 1 0.000 0.000 2.010 2.010 <string>:1(?)
R: 1 0.000 0.000 2.012 2.012 profile:0(_main())
R: 0 0.000 0.000 profile:0(profiler)
R: 1 0.000 0.000 2.009 2.009 test.py:6(_main)
However, interpreting these results correctly may not be trivial. How to interpret the results in general is explained at The Python Profilers .