-
Notifications
You must be signed in to change notification settings - Fork 21
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
Performance Improvement Ideas #4
Comments
@alexevanczuk Now that there's a Rust implementation for code_ownership (https://github.com/rubyatscale/codeowners-rs) do you think this issue is worth keeping open? |
Totally up to you! When I left, both the rust and ruby version were "fast enough" for local usage in pre-commit hooks and in production. I'd say there's only a need to keep investing in performance if it's a problem! |
I have been doing some digging in this again because our The crux of the problem is time spent in The code that does this is here:
In practice for our app, I would describe how we are using the globs as:
I experimented a big with |
Thanks for looking into this @technicalpickles ! A different implementation to find the files sounds great to me! It could be an opt-in (deprecating the old implementation) to avoid breaking the API right now. Also big plug for @mzruya 's rust port: |
It's important for
code_ownership
to be fast in various contexts. Here are different situations we want to be fast:On very large codebases, the slowest part of this is file annotations – reading all files and checking for annotations can be slow. I wanted to share a laundry list of some ideas for improvement here:
code_ownership.yml
to specify an order that mappers run in. This wouldn't improve the speed of generating code owners since we ask all mappers to show ownership for all files.Separately, we should consider a test/build step which measures code ownership speed on a large system. At Gusto we might include a post-build step which sends a metric to datadog about how long different commands take to run so we can track and observe changes over time.
The text was updated successfully, but these errors were encountered: