Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) for Pax tools #270
zamazan4ik
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi!
Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including many compilers and compiler-like workloads like static analyzers, code formatters, etc.) - the results are available here. I think such optimization can be useful for Pax too (at least for some places).
We need to evaluate PGO applicability to
Pax
tooling like compiler, LSP server, formatter, etc. If it helps to achieve better performance - add a note to the documentation about that. In this case, users and maintainers will be aware of another optimization opportunity for Pax tools. Also, PGO integration into the build scripts can help users and maintainers easily apply PGO for their workloads. Even distributed by Pax binaries can be pre-optimized with PGO on a generic-enough sample workload (e.g.rustc
already does it).After PGO, I can suggest evaluating LLVM BOLT as an additional optimization step.
For the Rust projects, I recommend starting with cargo-pgo - it makes easier PGO optimization in many cases.
Actually, I think it's a bit early to integrate PGO into Pax since a lot of new functionality is developed now and there are tasks with higher priority. However, keeping in mind that PGO is a good thing for a time when performance questions will be more important for the project.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions