Middle
Go колдонмоңузга стандарттык профайлерди кантип киргизсе болот?
sobes.tech AI
AIден жооп
net/http/pprof пакети HTTP-иштетүүчүлөрдү профилирдөө үчүн керектелет.
Аны импорттоо:
import (
"net/http"
_ "net/http/pprof" // Эң маанилүү '_' колдонуу менен инициализациялоо үчүн
)
Аны бөлөк goroutineде 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: Heap профили./debug/pprof/goroutine: Активдүү goroutine профили./debug/pprof/block: Блокировка профили./debug/pprof/threadcreate: Операциялык тутумдун жиптерин түзүү профили./debug/pprof/cmdline: Колдонмонун командалык саптары./debug/pprof/profile: CPU профили (өзүнчө 30 секунд маалымат чогултат)/debug/pprof/trace: Ишке ашыруунун трассировка профили (өзүнчө 1 секунд маалымат чогултат)
CPU, heap жана блокировка профилдерин анализдөө үчүн көбүнчө go tool pprof колдонулат:
go tool pprof http://localhost:6060/debug/pprof/profile # CPU профили 30 секунд
ngo tool pprof http://localhost:6060/debug/pprof/heap # Heap профили
Ишке ашыруунун трассировкасын анализдөө үчүн go tool trace колдонулат:
go tool trace http://localhost:6060/debug/pprof/trace
Маанилүү: Коопсуздукту эске алыңыз жана pprof портуна уруксатсыз ачыкка чыгарбаңыз өндүрүштө.