-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Improve gqlgen performance by bulking name only package loads #3743
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
Conversation
f7b7952
to
b59a78f
Compare
@StevenACoffman would really appreciate your attention here as this improves generation performance by 2-3x in large monorepos... Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great! I really appreciate you contributing this. One of the most valuable things is that you actually benchmarked it in a real large monorepo!
It's very hard for me to guess where to spend time on improving performance when it might turn out to have been a bad trade-off in practice (extra complexity might not be worth a few ms).
I'm happy to merge it as is, but I had a few possible suggestions if you were interested in them.
This is an unpaid volunteer community led project, so we really appreciate your contributions, and would love to hear feedback on any specific pain points or areas we could improve on.
Hi @StevenACoffman ! Thanks for your review, I will incorporate your fixes. Out of 30s of generation, roughly 23s are package loading - so this is very significant. |
Thanks very much! If you want to have a quick chat about the broader changes you are thinking about, I'm always happy to do that too. I'm in UTC-4 so I can either get up early or stay up late. Feel free to send me something at gears@umich.edu or https://www.linkedin.com/in/steve-coffman-79322175/ |
Describe your PR and link to any relevant issues.
This is a performance improvement set to bulk load packages wherever possible - it has major performance implications - in a large monorepo it improved generation time from 1:30m to 24s
I have: