Skip to content

Try naive paralellism#294

Draft
letFunny wants to merge 5 commits into
canonical:mainfrom
letFunny:try-naive-paralellism
Draft

Try naive paralellism#294
letFunny wants to merge 5 commits into
canonical:mainfrom
letFunny:try-naive-paralellism

Conversation

@letFunny
Copy link
Copy Markdown
Collaborator

  • Have you signed the CLA?

This PR is a draft implementation of the most naive form of parallelism possible in Go to get the benchmark numbers and to share the code.

letFunny added 4 commits April 2, 2026 14:03
Avoid expensive calls to GlobPath by separating the string into segments
and using cheaper comparisons were possible.
@letFunny
Copy link
Copy Markdown
Collaborator Author

letFunny commented Apr 28, 2026

Together with all previous fixes and this extremely naive, not optimized form of parallelism, we get:


Benchmark 1: BASE
  Time (mean ± σ):     11.566 s ±  0.037 s    [User: 11.965 s, System: 0.054 s]
  Range (min … max):   11.499 s … 11.635 s    10 runs
 
Benchmark 2: HEAD
  Time (mean ± σ):     709.3 ms ±   9.4 ms    [User: 2636.0 ms, System: 40.6 ms]
  Range (min … max):   701.8 ms … 734.6 ms    10 runs
 
Summary
  'HEAD' ran
   16.31 ± 0.22 times faster than 'BASE'

So 16 times faster than main, for a total of 700ms compared to 12s.

Comment thread internal/setup/setup.go
}
mu.Lock()
if err == nil {
err = fmt.Errorf("slices %s and %s conflict on %s and %s", old, new, oldPath, newPath)
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Sort the errors lexicographically by comparing strings to give out a deterministic error. Thanks Paul for the suggestion to make it better

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