Основные инструменты профилирования в Go
ฝัง
- เผยแพร่เมื่อ 30 มิ.ย. 2024
- Мини практикум по бенчмаркам и профилированию в Golang.
Я рассказываю об основных инструментах (benchmark, benchstat, pprof, go tool), о том как запускать сбор данных, и как интерпретировать результат.
Ссылка на репозиторий: github.com/PakshNina/profiling
1:29 - Инструменты
1:55 - Бенчмарки
5:27 - Сравнение бенчмарков
9:40 - Выгрузка профиля ЦПУ и Памяти из бенчмарков
11:34 - Работа с pprof через консоль
14:55 - Запись профиля в файл
16:53 - Использование веб-интерфейса
21:35 - Тэги
23:58 - Сравнивание двух профилей ЦПУ
26:08 - На что обращать внимание
26:51 - Flame Graph
28:16 - Запуск в проде
29:10 - Типы профилирования
30:05 - Веб-сервер профайлинга
31:27 - Сбор информации с сервера
33:22 - Анализ кучи в реальном времени
33:31 - Анализ блокировок
Глубоко и познавательно. Нина потратила много сил и времени на подготовку.
О, класс! Как раз искал доклад по этой теме. Спасибо
спасибо. было бы интересно послушать про оптимизации, уменьшению аллокаций
Добрый день, про escape analysis и аллокации есть немного в докладе про сборщик мусора, посмотрите по таймкодам.
Привет, спасибо за доклад! Подскажи, как влияет на прод профилирование в режиме онлайн? Может ли он дать серьезную нагрузку? Это безопасно для прода?
Да, разработчики утверждают, что pprof использует дополнительную нагрузку в 5% для профилирования ЦП и кучи. Поэтому pprof безопасно использовать в продакшене с точки зрения потребления ресурсов. С точки зрения безопасности другой вопрос: у вас в продакшене будет запущен еще один экземпляр сервера какой-то «левой» библиотеки, и это уже нужно обсуждать с вашей службой безопасности (а с ними всегда непросто :))
@@PakshinaNina спасибо за ответ!