Simple and pretty python code profiler for measuring execution time.
Project description
ptimeit
pretty timeit - simple and pretty python code profiler for measuring execution time
pip install ptimeit
examples
function execution time
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
code section execution time
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
.
nested mixture of functions and sections
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ptimeit-0.1.2.tar.gz
.
File metadata
- Download URL: ptimeit-0.1.2.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 876a337c9a486f708676aca3392af02df4d0d6acc219fe4240142d1caacc8f06 |
|
MD5 | c067bbb243c39033895964a5829c22b4 |
|
BLAKE2b-256 | 4b1eb240f5ba397dbdfc6be6a6a81911ab9507b81d040fc1755303ca970f6db4 |
File details
Details for the file ptimeit-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: ptimeit-0.1.2-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 658ab40e3461fcbe006888f7987e9c190c0bf8d31986c0efad6a91b0f63848bd |
|
MD5 | 058d85647a38eb019fe061e4f1d823f3 |
|
BLAKE2b-256 | 6647119f624cf80ff9d5aefed5221660b4233e13ba19577722804d801f636206 |