Бесплатные материалы

Профилирование на Go | Полное руководство

ИСТОЧНИК:
В этом видео мы разберем профилирование в Go от «А» до «Я» — как находить узкие места в коде, оптимизировать потребление памяти и использовать данные о работе приложения для автоматического ускорения компиляции.

В этом уроке:

  • Теория профилирования: зачем это нужно, что такое баттлнеки и в чем разница между инструментацией и самплированием.
  • Работа с pprof: как собирать профили CPU и памяти локально и через HTTP-эндпоинты прямо на лету.
  • Визуализация данных: учимся читать графы вызовов и Flame Graphs, разбираемся в метриках Flat и Cumulative.
  • Профилирование блокировок: как находить задержки в мьютексах и каналах, ограничивающие пропускную способность системы.
  • Трассировка (Execution Trace): глубокий анализ работы планировщика и сборщика мусора (GC) для борьбы со спайками нагрузки.
  • Continuous Profiling: как организовать постоянный сбор и сравнение профилей в реальных тех-компаниях с помощью инструментов вроде Pyroscope.
  • Оптимизация PGO: ускоряем приложение на 2-14%, скармливая профили компилятору Go.

В итоге у тебя будет полное руководство по поиску и устранению проблем производительности: от понимания сигналов операционной системы до практических кейсов использования sync.Pool и тонкой настройки компилятора

Дополнительные материалы к видео

Исходный код
https://github.com/IgorWalther/videos/tree/master/0004_profiling
Презентация
https://docs.google.com/presentation/d/1TUJ3VPXPat8jpWxJ3V8Ej9p7oY-FSoTrZPaWcb9gfGs/edit?usp=sharing
Продвинутый Go Computer Science