pretty timeit - simple and pretty python code profiler for measuring execution time
pip install ptimeit
use timeit_function
decorator for measuring function execution time
import time
from ptimeit import timeit_function
@timeit_function('foo')
def foo():
time.sleep(0.1)
foo()
outputs:
->>>>>>>> 102.7ms foo()
Adding a conditional function that determines if something is printed. The function receives elapsed time in milliseconds as an input and is expected to return a boolean.
import time
from ptimeit import timeit_function
@timeit_function('foo', lambda t: t > 500)
def foo():
time.sleep(0.1)
@timeit_function('bar', condition=lambda t: t > 500)
def bar():
time.sleep(1)
foo()
bar()
No output for foo
- measured time needs to be over 500ms to be printed.
bar
outputs:
->>>>>>>> 1003.1ms bar()
Adding extra data
import time
from ptimeit import timeit_function
@timeit_function('foo', extra_data_to_print="This is a string")
def foo():
time.sleep(0.1)
foo()
outputs:
->>>>>>>> 103.3ms foo() - This is a string
use timeit_section
context manager for measuring code section execution time
import time
from ptimeit import timeit_section
with timeit_section('bar'):
time.sleep(0.1)
outputs:
->>>>>>>> 105.1ms bar
It is also possible to use conditional condition
function and extra_data_to_print
the same way as in timeit_function
.
import time
from ptimeit import timeit_function, timeit_section
@timeit_function('foo_inner')
def foo_inner():
with timeit_section('foo_inner:section_1'):
time.sleep(0.05)
with timeit_section('foo_inner:section_2'):
time.sleep(0.25)
@timeit_function('foo_outer')
def foo_outer():
with timeit_section('foo_outer:section_1'):
time.sleep(0.2)
foo_inner()
with timeit_section('foo_outer:section_2'):
time.sleep(0.4)
with timeit_section('bar:outer'):
foo_outer()
time.sleep(0.1)
outputs:
->>>>>>>> 200.1ms | | foo_outer:section_1
->>>>>>>> 51.3ms | | | foo_inner:section_1
->>>>>>>> 252.8ms | | | foo_inner:section_2
->>>>>>>> 304.3ms | | foo_inner()
->>>>>>>> 403.0ms | | foo_outer:section_2
->>>>>>>> 907.6ms | foo_outer()
->>>>>>>> 1010.8ms bar:outer