-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change Gengo
to take a generic FileSource
#191
Conversation
Merge remote-tracking branch 'origin/main' into chore/165/handlers-providing-iterator
cc @Byron As someone who has shown a lot of interest in gengo's performance, I'd love to hear your thoughts! I think there's definitely some room for performance improvements, and also probably some areas where the code can be simplified. I got lazy and used My benchmarks showed both performance gains and drops locally between this branch and |
This reverts commit 4b98fd3.
Codecov Report
@@ Coverage Diff @@
## main #191 +/- ##
==========================================
- Coverage 85.68% 83.12% -2.57%
==========================================
Files 14 16 +2
Lines 552 569 +17
==========================================
Hits 473 473
- Misses 79 96 +17
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Thanks for reeling me in. I browsed through the changes quickly and the diff was interrupted by codecov every couple of lines, so I might not actually get what's happening here. But from what I think I get, I have a few notes to share.
And that's already it. I also think that |
Thanks for the feedback and insight! |
You are welcome! I forgot to mention to definitely use I'd be interested in performance numbers when available by the way - in particular, does the new rayon-based parallelization end up being faster or slower than the one that was implemented before. The reason I think it could be faster is better work stealing. And the reason I think it could be slower is if attribute access performance is reduced due to too-much randomization of input paths (i.e. each thread should see a sorted list of input paths as is present in the index, needs chunking). |
Well, I added a benchmark to run on To my surprise, Criterion's unit of time duration went from |
Nevermind #197 😅 |
This changes the implementation of
Gengo
to take a genericFileSource
type, moving git-specificstuff to its own module. This breaks usage by moving the
rev
argument fromGengo::analyze
toBuilder::new
(there's a good chance that this will break again once other file sources are implemented).To do
Set Rust versionNevermindCloses #150
Resolves #165
Related to #149