bencher.perf_tracker

Lightweight performance tracking for benchmark phases.

Classes

PhaseTime

Timing for a single named phase.

PerfReport

Collection of phase timings from a benchmark run.

PerfTracker

Context-manager based phase timer.

Module Contents

class bencher.perf_tracker.PhaseTime

Timing for a single named phase.

name: str
duration_s: float
property duration_ms: float
class bencher.perf_tracker.PerfReport

Collection of phase timings from a benchmark run.

phases: list[PhaseTime] = []
property total_s: float
property total_ms: float
get_phase(name: str) PhaseTime | None

Return the first phase matching name, or None.

summary() str

Human-readable summary of all phases.

to_dict() dict

Return phases as {name: duration_ms} plus a total.

class bencher.perf_tracker.PerfTracker

Context-manager based phase timer.

Usage:

tracker = PerfTracker()
with tracker.phase("setup"):
    do_setup()
with tracker.phase("compute"):
    do_compute()
report = tracker.report()
_phases: list[PhaseTime] = []
phase(name: str)

Time a block and record it as a named phase.

report() PerfReport

Build a PerfReport from all recorded phases.

log_summary() None

Log the report summary at INFO level.