Skip to main content

Simple and pretty python code profiler for measuring execution time.

Project description

BuildBadge PyPIVersion PythonFormat

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptimeit-0.1.2.tar.gz (3.4 kB view hashes)

Uploaded Source

Built Distribution

ptimeit-0.1.2-py3-none-any.whl (3.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page