Profile-Guided Optimization (PGO) in Rust - 101

By Alexander Zaitsev

Talk - Thursday, 30 May

Profile-Guided Optimization (PGO) is a compiler optimization technique that helps with optimizing software performance based on runtime statistics from your application. This optimization is available for a long time in the Rustc compiler. But how smooth will be your experience when you try to enable PGO in practice?
I applied PGO to many kinds of software (compilers, databases, log solutions, CLI tools, and many other things), collected a lot of carefully hidden traps on my journey, and found multiple ways how to avoid them. In this talk, I want to share with you my experience. We will discuss the following topics:
What is PGO and why do we need it? PGO performance benefits in practice (with a lot of numbers for actual open-source software) What kinds of PGO do we have nowadays? Pros and cons of each PGO way. Most and less common PGO traps that you can meet in your journey and how to mitigate them. PGO state in the Rust ecosystem: compilers, build systems, community tooling. A lot of pieces of advice about PGO integration into your software. And of course answer all your questions about PGO! After the talk, you will be much more prepared to optimize your Rust applications with PGO in practice!


Alexander Zaitsev

In the past, I used to be an active C++ user and contributor, but now my coding skills are a bit Rust-y. People at work call me “Solution architect” but I prefer “Confluence && engineer”.
I like compilers and performance, crazy about optimizations and making optimizations as friendly as possible for humankind.