Middle
Go dasturiga standart profilingni qanday qo'shish mumkin?
sobes.tech AI
AIdan javob
net/http/pprof пакети профілювання даних для HTTP-обробників.
Імпортуйте його:
import (
"net/http"
_ "net/http/pprof" // Важливо використовувати '_' для ініціалізації з побічними ефектами
)
Запустіть HTTP-сервер у окремій горутині:
go func() {
// Запуск сервера на локальній адресі та стандартному порту pprof
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Обробка помилки запуску сервера, наприклад, логування
// log.Printf("сервер pprof не вдалося запустити: %v", err)
}
}()
Тепер ви можете отримати доступ до даних профілювання за адресою 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:
go tool pprof http://localhost:6060/debug/pprof/profile # Профіль CPU за 30 секунд
go tool pprof http://localhost:6060/debug/pprof/heap # Профіль купи
Для аналізу трасування виконується утиліта go tool trace:
go tool trace http://localhost:6060/debug/pprof/trace
Важливо: Пам'ятайте про безпеку і не відкривайте порт pprof публічно без авторизації у продакшені.