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.0.tar.gz (2.7 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.0-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: timingtracer-0.1.0.tar.gz
  • Upload date:
  • Size: 2.7 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.0.tar.gz
Algorithm Hash digest
SHA256 d8abbf2133967a7b9aff6f8384f4c708dd1869875cf7b84d641036bc4d23e9b8
MD5 ecfb4403ed90cd85182556569a9e572c
BLAKE2b-256 4e6cf8d9fc7a82349a6914be20ac356b6856b4cdfe437fe5e30bd35061c0c49b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: timingtracer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aed1eca9f3050ef2902f8c925a7a461315a82a2d77e7e0524744e3229887bbbc
MD5 9fd1b1d0a13a958092aa524dd98670bc
BLAKE2b-256 9dd7c7b81adfc9f870a0024ca41b506251333b3e837c6549e9f1a6da5c562c3c

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