PyProfilers is collection of wrapper functions for various Python profilers which aims to make profiling more convenient.
Install and update using pip:
pip install -U pyprofilers
import pyprofilers as pp
Profile with cProfile
Use the standard Python cProfile to list
the cumulative time spent in the function func
and all its subfunctions:
@pp.profile(sort_by='cumulative', out_lines=30)
def func():
...
sort_by
can be used to sort the results according to the supplied criteria. All criterias can be found here.out_lines
controls the number of lines in results. UseNone
or ommit the arugment to show all.
Profile with line_profiler
Use the line_profiler to list time spent within each line of func
:
@pp.profile_by_line(exit=1)
def func():
...
Set exit
to True
to stop the execution after the first call to func
returns. This is useful if func
is called multiple times to
avoid the repeated output of the profiler statistics.
To just time the execution of a function use the simple_timer
decoration:
@pp.simple_timer(num=1)
def func():
...
The num
argument can be used to specify how often the function should be executed.