Оптимизация по профилю (PGO): что это даёт и как включить
Оптимизация по профилю — это сборка с учётом того, как программа ведёт себя под реальной нагрузкой. Компилятор получает профиль процессора и использует его для решений, которые иначе принимает эвристиками: агрессивнее встраивает горячие функции, лучше раскладывает код по кеш-линиям, точнее девиртуализует вызовы через интерфейсы. Типичный выигрыш — от двух до семи процентов производительности, что немного в абсолюте, но бесплатно с точки зрения кода. Включается предельно просто: положить профиль в файл default.pgo рядом с главным пакетом, и go build подхватит его сам — отдельных флагов не нужно. Профиль берут из прода через net/http/pprof, а не с синтетического бенчмарка, иначе оптимизация будет подогнана под нереальный сценарий. Практические тонкости: профиль стоит обновлять по мере изменения нагрузки, но устаревший профиль не ломает сборку — он просто менее полезен; и профиль надо коммитить, иначе сборка в CI пройдёт без него.