Attending this event?
CppNorth 2024, The Canadian C++ Conference
July 21-24, 2024 • Toronto, Canada
At the Microsoft Canadian Headquarters (Suite 4400)
In: CIBC SQUARE, 81 Bay St., Toronto, ON M5J 0E7, Canada
Monday July 22, 2024 17:00 - 18:00 EDT
Profile-Guided Optimization (PGO) is a compiler optimization technique that helps with optimizing software based on a collected in runtime profile. This optimization is available in all major C++ compilers like GCC, Clang, MSVC. But how smooth will be your experience when you try to adopt PGO in practice?

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 and found multiple ways of 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 in different compilers?
* 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 C++ ecosystem: compilers, build systems, package managers support.
* 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 for doing PGO in practice and even will be aware about more advanced optimization techniques like Post-Link Optimization (PLO), ML-based compiler optimization and other interesting stuff from the optimization field.
avatar for Alex Zaitsev

Alex Zaitsev

Undergraduate, Belarusian State Technological University
In the past, I used to be an active C++ user and contributor, but now my coding skills are a bit Rusty. People at work call me "Solution architect" but I prefer "Confluence && Draw.io engineer".I like performance, crazy about optimizations and making optimizations as friendly as possible... Read More →
Monday July 22, 2024 17:00 - 18:00 EDT
Track C

Attendees (7)

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Share Modal

Share this link via

Or copy link