LOADING

Profile-Guided Optimization (PGO) in Rust: unknown parts

I applied PGO to many kinds of software, 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.

Aliaksandr Zaitsau
CTO at Cytopus
About This Talk

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 for a long time in the Rustc compiler. 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 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 for doing PGO in practice and even will be aware of more advanced optimization techniques like Post-Link Optimization (PLO), ML-based compiler optimization and other interesting stuff from the optimization field.

more great talks

Might Be Interesting

Day 1
  —  
arrow pointing right icon

Unlocking the full potential of Cargo extensions in Rust development

Discover how Cargo extensions can revolutionize your Rust development workflow in this insightful talk.

Day 1
  —  
arrow pointing right icon

Strongly Typed Financial Software

In this talk, we’ll go through some real-life examples of using Rust features like traits, newtype wrappers, generics, and macros for creating financial software. We’ll look at how regular application code can benefit from the features Rust provides.

Day 1
  —  
arrow pointing right icon

Embrace or ditch the async?

Should you dig the hype and default to Embassy when starting new microcontroller project? How it works and what does it bring to the table? Let's compare and measure the same IoT app written in sync and async Rust.

Day 1
  —  
arrow pointing right icon

Improving Your Rust Life

Of course, choosing Rust is already improving your life as a programmer. But there’s always something we can still improve. So here’s a series of tips to save you time, typing, sanity or all of them.

Day 1
  —  
arrow pointing right icon

Using CRDTs Beyond Text Editors

This talk explores lessons learned while building a CRDT library with JSON semantics, aimed at application developers.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us