Photo

Profile-Guided Optimization (PGO): a practical guide

Alexander Zaitsev

from Cytopus (Warsaw, Poland)

About speaker

Solution Architect. CoreHard conference regular speaker. Likes performance-oriented technologies like C++, Rust. Believes that performance is a thing we should care about even if it is often hard to sell.

Interests: performance optimization, compilers, static and dynamic analysis.

About speakers company

-

Abstracts

specific

The data-driven optimization approach is not a new thing for the industry. One such example in compilers - Profile-Guided Optimization (PGO), which helps to optimize different applications like databases, web browsers, compilers, and many other things according to their target workloads.

Unfortunately, almost all PGO-related documentation shows you very basic information like "which compiler flag must be used for enabling PGO". However, what about real questions like "How do I need to integrate the PGO approach into my CI pipeline?" or "How to collect PGO profiles in filesystem-less environments?". If you are interested, this talk is for you.

We will speak about the following things:

* Different targets for PGO: applications and libraries. What are the differences?
* How long should I collect PGO profiles?
* What are the most common issues with PGO integration and how can they be mitigated?
* What is the current PGO integration status into build systems?
* What is the current approach to integrating PGO into OS prebuilt packages?
* And a lot of recommendations for other PGO-related nuances.

I hope after the talk you will be ready to start integrating PGO into your application!

The talk requires some understanding of what PGO is. However, a very (VERY) quick introduction to the technology will be at the beginning of the presentation. I highly recommend you watch my previous talk about PGO from Tech Internals Conf 2024 in Cyprus.

The Program Committee has not yet taken a decision on this talk