Skip to content

v0.1.1

Choose a tag to compare

@seba2390 seba2390 released this 20 Sep 09:47
· 14 commits to main since this release

[0.1.1] - 2026-09-20

Fixed

  • Overlapping calls to the same section now accumulate each call's actual duration in
    threads and asyncio tasks, including calls sharing one context or decorator.
  • Clearing active timings cannot add a discarded sample to a new entry at the same path.
  • JSON sections and totals now use one consistent snapshot, and category totals retain
    categories that disappear when counter variants are merged.
  • Flattened categories follow the most recently entered section, including revisited counters.
  • Flattening preserves non-integer bracket suffixes such as array[index] and empty[].
  • An out-of-order context exit raises RuntimeError without changing another section's
    elapsed time or active stack.

Performance

  • Cache each active section's path and parent, and reuse decorator contexts to reduce
    recording allocations and avoid rebuilding paths on exit.
  • Sum total time directly without copying and flattening the registry.
  • Calculate all JSON category totals in one pass over a shared snapshot.
  • Skip report generation when logging at INFO is disabled.

Added

  • Deterministic regression tests for concurrency, clearing, category attribution, and
    snapshot consistency, plus coverage for recursion, cancellation, and deep nesting.
  • A repeatable benchmark for recording and reporting overhead in benchmarks/overhead.py.
  • Expanded the suite from 53 to 88 tests, achieving 100% statement and branch coverage.