Что такое PGO

«Что такое PGO» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

PGO (Profile-Guided Optimization) — это техника оптимизации кода, при которой компилятор использует данные профилирования (статистику выполнения программы) для принятия решений о более эффективной компиляции. В Go 1.20+ PGO позволяет улучшить производительность, подсказывая компилятору, какие участки кода выполняются чаще.

Пример использования:

  1. Собираем профиль CPU:

    go test -cpuprofile=cpu.pprof
  2. Указываем профиль при компиляции:

    go build -pgo=cpu.pprof

PGO может оптимизировать инлайнинг, расположение кода в памяти и другие аспекты, повышая производительность на 5-15%. Важно обновлять профили для актуальных сценариев работы.