Skip to content

Fix overhead in test report for large test counts#1202

Open
std-max wants to merge 1 commit into
VUnit:masterfrom
std-max:dev-fast-report
Open

Fix overhead in test report for large test counts#1202
std-max wants to merge 1 commit into
VUnit:masterfrom
std-max:dev-fast-report

Conversation

@std-max
Copy link
Copy Markdown
Contributor

@std-max std-max commented May 27, 2026

After every test, print_latest_status() calls _split(), which iterates over all accumulated results just to display the P=/S=/F= counters in the progress line.
This makes per-test bookkeeping O(n) and cumulative bookkeeping O(n^2), and since it runs inside _stdout_lock while holding the GIL, worker threads progressively block on it.
It is particularly visible on large runs: throughput drops and CPU utilization collapses well before the end.

This fix uses three running counters and reads them directly instead of calling _split().
The other two callers of _split() are left untouched since they need the actual result lists and only run once at the end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant