Skip to content
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

Enable Profile-Guided Optimization (PGO) for more packages #19273

Open
zamazan4ik opened this issue Dec 5, 2023 · 2 comments
Open

Enable Profile-Guided Optimization (PGO) for more packages #19273

zamazan4ik opened this issue Dec 5, 2023 · 2 comments
Labels
enhancement Package requires more dependencies, build options, different packaging style etc.

Comments

@zamazan4ik
Copy link

Hi!

Profile-Guided Optimization (PGO) is already enabled for several packages in the MinGW repo: Clang, GCC. Since PGO improves performance, I suggest enabling PGO for the following packages as well:

Probably there are other packages in the MinGW repo that can benefit from PGO. You can find the existing benchmarks for other projects here. Maybe we even want to integrate PGO into the packages like Ruby, Perl, and other similar packages.

@Biswa96 Biswa96 added the enhancement Package requires more dependencies, build options, different packaging style etc. label Dec 5, 2023
@lazka
Copy link
Member

lazka commented Dec 5, 2023

Helpful links, thanks!

@RivenSkaye
Copy link

For linkers and compilers this makes a lot of sense, but for more general things like Ruby or Python which allow both execution or interactive REPL, the performance might be negatively impacted in use-cases other than what is simulated for PGO.
The alternative is running a lot of different uses for profiling which will take way more time to run and lower the overall performance gain.

PGO is, unfortunately, not a magical performance enhancement. It just provides benefits for the code paths used a lot with instrumentation and penalizes the paths instrumentation didn't touch.
I'd say look at packages case by case to determine if it's worth the tradeoff there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Package requires more dependencies, build options, different packaging style etc.
Projects
None yet
Development

No branches or pull requests

4 participants