Экосистема Go предоставляет большой набор API и инструментов для диагностики проблем логики и производительности в программах Go.
Диагностические решения можно разделить на следующие группы:
- Профилирование. Инструменты профилирования анализируют сложность и затраты программы Go, например использование памяти и часто вызываемые функции, для определения дорогих разделов программы Go.
- Трассировка. Трассировка - это способ кодирования инструмента для анализа задержки в течение жизненного цикла вызова или запроса пользователя. Трассировки предоставляют обзор того, сколько задержек вносит каждый компонент в общую задержку в системе. Трассировки могут охватывать несколько процессов Go.
- Отладка. Отладка позволяет нам приостановить выполнение программы Go и проверить ее выполнение. Состояние и ход программы можно проверить с помощью отладки.
- Статистика и события во время выполнения. Сбор и анализ статистики и событий во время выполнения обеспечивает общий обзор состояния программ Go. Пики/спады показателей помогают нам определить изменения в пропускной способности, использовании и производительности.
Примечание. Некоторые средства диагностики могут мешать друг другу. Например, точное профилирование памяти искажает профили ЦП, а профилирование блокировки goroutine влияет на трассировку планировщика. Используйте инструменты отдельно, чтобы получить более точную информацию.
Читайте также:
- Исследование утечек памяти в Golang с помощью pprof
- Состояния гонки в Golang
- Работа с гонками данных (data race) в Golang
Комментариев нет:
Отправить комментарий