Middle
121
questionbank

Как встроить стандартный профайлер в свое приложение на Go?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Пакет net/http/pprof предоставляет обработчики HTTP для данных профилирования.

Импортируйте его:

go

Запустите HTTP-сервер в отдельной горутине:

go

Теперь вы можете получить доступ к данным профилирования по адресу http://localhost:6060/debug/pprof/.

Основные доступные эндпоинты:

  • /debug/pprof/: Главная страница со списком доступных профилей.
  • /debug/pprof/heap: Профиль кучи.
  • /debug/pprof/goroutine: Профиль активных горутин.
  • /debug/pprof/block: Профиль блокировок.
  • /debug/pprof/threadcreate: Профиль создания потоков ОС.
  • /debug/pprof/cmdline: Командная строка приложения.
  • /debug/pprof/profile: Профиль CPU (по умолчанию собирает данные 30 секунд).
  • /debug/pprof/trace: Профиль трассировки выполнения (по умолчанию собирает данные 1 секунду).

Для анализа профилей CPU, кучи и блокировок обычно используется утилита go tool pprof:

bash

Для анализа трассировки выполнения используется утилита go tool trace:

bash

Важно: Помните о безопасности и не открывайте порт с pprof наружу без авторизации в продакшене.