Skip to main content

Profile-Guided Optimization (PGO) in Go: current state and challenges

UB5.132 | Day 2 | 13:00 - 13:30 | Speakers: Alexander Zaitsev

Profile-Guided Optimization (PGO) in Go: current state and challenges
A picture of a devroom at FOSDEM 2024
Open in browser

Notes

Abstract

Profile-Guided Optimization (PGO) is a well-known compiler optimization technique that brings runtime statistics about how an application is executed to the Ahead-of-Time (AoT) compilation model, which is quite recently added to the Go compiler. However, this technique is not widely used nowadays.

In this talk, I want to discuss the current PGO state in the Go ecosystem. During my work on the Awesome PGO project, I gathered a lot of interesting data points and insights about various PGO issues and discussed many related quirks with different stakeholders like end-users, maintainers, and application developers. We will talk about:

  • PGO state across Go compilers
  • PGO awareness across the Go industry
  • PGO tooling issues
  • Strengths and weaknesses of PGO modes for different use cases in real-world
  • Top blockers for PGO adoption
  • And many other things!

I believe that after the talk more people will be aware of PGO, aware of usual PGO blockers, and know more about how to avoid these limitations in practice.

Target audience: performance-oriented Go users and Go compiler engineers

Attachments


Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.