bencher.perf_tracker ==================== .. py:module:: bencher.perf_tracker .. autoapi-nested-parse:: Lightweight performance tracking for benchmark phases. Classes ------- .. autoapisummary:: bencher.perf_tracker.PhaseTime bencher.perf_tracker.PerfReport bencher.perf_tracker.PerfTracker Module Contents --------------- .. py:class:: PhaseTime Timing for a single named phase. .. py:attribute:: name :type: str .. py:attribute:: duration_s :type: float .. py:property:: duration_ms :type: float .. py:class:: PerfReport Collection of phase timings from a benchmark run. .. py:attribute:: phases :type: list[PhaseTime] :value: [] .. py:property:: total_s :type: float .. py:property:: total_ms :type: float .. py:method:: get_phase(name: str) -> PhaseTime | None Return the first phase matching *name*, or None. .. py:method:: summary() -> str Human-readable summary of all phases. .. py:method:: to_dict() -> dict Return phases as {name: duration_ms} plus a total. .. py:class:: PerfTracker Context-manager based phase timer. Usage:: tracker = PerfTracker() with tracker.phase("setup"): do_setup() with tracker.phase("compute"): do_compute() report = tracker.report() .. py:attribute:: _phases :type: list[PhaseTime] :value: [] .. py:method:: phase(name: str) Time a block and record it as a named phase. .. py:method:: report() -> PerfReport Build a PerfReport from all recorded phases. .. py:method:: log_summary() -> None Log the report summary at INFO level.