Abstract
Profile-Guided Optimization (PGO) is a compiler optimization technique that helps with optimizing software based on runtime statistics. This optimization is available for a long time in the Rustc compiler. I applied PGO to many kinds of software (compilers, databases, log solutions, CLI tools, and many more), collected a lot of carefully hidden traps on my journey, reviewed many open-source projects, and found multiple PGO integration approaches. In this talk, I want to share with you my experience.
We will discuss the following topics:
- Very quick overview of what is PGO
- Most and less common PGO traps that you can meet in your journey and how to mitigate them.
- Review where and how PGO is already integrated in different places of the Rust ecosystem
- Review how PGO is integrated into open-source projects at different levels: projects, build scripts, distributions, and discuss main problems with them
- A lot of pieces of advice about PGO integration into your software.
- And of course answer all your questions about the integration of PGO into your software!
After the talk, you will know about many ways how your software can be optimized with PGO in practice.