Skip to content

Let dua-core queue more of the walk in place of the draining thread - #81

Merged
dduugg merged 1 commit into
mainfrom
dua-core-4.2
Oct 13, 2026
Merged

dduugg merged 1 commit into
mainfrom
dua-core-4.2

Conversation

@dduugg

@dduugg dduugg commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Measurements

The walk loop's median wait on dua-core over 15 runs in a large Rails app, at a load average of about 22 on 12 cores:

Setup Waiting on the walk
dua-core's default of 2 per worker 301 ms
The draining thread (main) 113 ms
32 per worker 100 ms
128 per worker 64 ms
512 per worker 60 ms

The total walk time was too noisy to separate the setups, apart from the default of 2. Rerun with 4.2.0 at a load average of about 47, it's a median 801 ms against 820 ms for main.

Test plan

  • cargo test (374 tests), cargo fmt --check and cargo clippy --all-targets --all-features -- -Dwarnings.
  • list-included-files, list-packs and list-references match main on every fixture and four Rails apps. list-references on app_with_monkey_patches panics on both, naming either duplicate constant at random, as on main.
  • CI's Build jobs, including Windows.

dua-core 4.2.0 has `Options::queued_batches_per_worker`, from
Byron/dua-cli#413. With room for 128 batches per worker, the walk's loop
in a large Rails app waited a median 64 ms on dua-core, against 113 ms
with the thread and 301 ms with dua-core's default of 2.
@dduugg
dduugg requested a review from a team as a code owner October 13, 2026 21:41
@dduugg
dduugg merged commit b4facab into main Oct 13, 2026
22 checks passed
@dduugg
dduugg deleted the dua-core-4.2 branch October 13, 2026 21:49
@github-project-automation github-project-automation Bot moved this from Triage to Done in Modularity Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant