Skip to content

Report.get_summary() iterates over results five separate times #83

Description

@deyna256

get_summary() makes five independent passes over self.results:

  1. sum(1 for r in self.results if r.passed) — passed count
  2. [r.metrics.latency_ms for r in self.results if r.metrics] — latencies list
  3. sum(r.metrics.cost_usd or 0 for r in self.results if r.metrics) — total cost
  4. sum(r.metrics.total_tokens or 0 for r in self.results if r.metrics) — total tokens
    5–6. _count_execution_errors() and _count_validation_failures() — two more full iterations

All six values can be computed in a single pass. As the result set grows, the current implementation performs O(6n) work where O(n) is sufficient.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancePerformance and resource efficiency

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions