Skip to main content

Yet another way to measure code execution duration using a context

Project description

context-timing

A python context manager for timing of a block. Somewhat similar to contexttimer or timethis.

Uses perf_counter_ns() underneath.

The goal of this package is not to be extremely accurate or lightweight. Though both should be acceptable.

Use case

Main use case

This package is not intended to measure perfomance like timeit would do. The main use case here is to get a quick way to display how long a block of code takes to execute. For instance if you have a large amount of code that runs, and have a feeling that the duration of some functions could help you understand the behaviour. This package lets you easily add a display of this timing.

How to use

Basic

from context_timing import measure_time

with measure_time():
    sleep(1)

Set output steam for multiple calls

from context_timing import measure_time, set_log_func

set_log_func(print)

with measure_time():
    sleep(1)

with measure_time():
    sleep(2)

Redirect the output for one measurement

import logging
from context_timing import measure_time, set_log_func

set_log_func(print)

with measure_time(logging.info):
    sleep(1)

with measure_time():
    sleep(2)

In-between timing

The package, similarly to contexttimer lets you get the time since start, within the context.

from context_timing import measure_time

with measure_time() as m:
    sleep(1)
    m.print()  # ~1s

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

context_timing-0.0.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

context_timing-0.0.2-py3-none-any.whl (4.7 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