Skip to main content

A simple utility class for timing and tracing code execution. Mark operations and print elapsed times between them.

Project description

TimeTracer

A simple utility class for timing and tracing code execution. Mark operations and print elapsed times between them.

Installation

Using uv-astral (recommended)

uv add timingtracer

Using pip

pip install timingtracer 

Usage

Basic usage

from timingtracer import TimeTracer 

def calculate(iteration: int) -> int:
    sum = 0
    for i in range(iteration):
        sum += i

    return sum

tracer = TimeTracer("Plain Tracer")
tracer.start()

calculate(10**2)
tracer.mark("Short Operation")

calculate(10**4)
tracer.mark("Medium Operation")

tracer.end()

Output

[Plain Tracer] - Short Operation took 3.8µs
[Plain Tracer] - Medium Operation took 157.0µs

Context manager

from timetracer import TimeTracer

def calculate(iteration: int) -> int:
    sum = 0
    for i in range(iteration):
        sum += i

    return sum

sum1_limit = 10**6
sum2_limit = 10**8
with TimeTracer("Context Manager Tracer") as t:
    sum1 = calculate(sum1_limit) 
    sum2 = calculate(sum2_limit) 
    
    print("sum1", sum1)
    print("sum2", sum2)

    t.mark(f"calculate({sum1_limit}), calculate({sum2_limit}) and print results")```

Output
```bash
sum1 = 499999500000
sum2 = 4999999950000000
[Context Manager Tracer] - calculate(1000000), calculate(100000000) and print results took 1.881s

Disable mode (debugging / production)

from timetracer import TimeTracer

# All methods become no-ops when disabled
tracer = TimeTracer("My Tracer", disable=True)
tracer.start()
tracer.mark("Step 1")
tracer.end()  # does nothing

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

timingtracer-0.1.1.tar.gz (2.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

timingtracer-0.1.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file timingtracer-0.1.1.tar.gz.

File metadata

  • Download URL: timingtracer-0.1.1.tar.gz
  • Upload date:
  • Size: 2.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for timingtracer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5fea46fbfd4b95f83e99aca7749a01ac091a0b16c89c866b538d6294faa541e4
MD5 6ddaddea92bb0947789cf639239141de
BLAKE2b-256 b4707411be251164980ca8de72d9e2364a79146d79a67ab5de09e3eedb7d966d

See more details on using hashes here.

File details

Details for the file timingtracer-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: timingtracer-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for timingtracer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f4214f261cd776feb835a5bf381245b0130745e4e03057d80adb58a37b66ede
MD5 d5e9acbe6dbb9e9da7eb6ae362a601e4
BLAKE2b-256 f95219f3d5de0f5b758935c915b1b0242658a9a65bf297ffa3090dfd0d1adb28

See more details on using hashes here.

Supported by

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