Middle
Hogyan építheti be az alapértelmezett profilert a Go alkalmazásába?
sobes.tech MI
Válasz az MI-től
A net/http/pprof csomag HTTP-kezelőket biztosít profilozási adatokhoz.
Importálja:
import (
"net/http"
_ "net/http/pprof" // Fontos '_' használata az inicializáláshoz mellékhatásokkal
)
Indítson el egy HTTP szervert egy külön goroutine-ban:
go func() {
// Indítsa el a szervert helyi címen és a pprof alapértelmezett portján
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Kezelje a szerver indítási hibát, például naplózással
// log.Printf("pprof szerver nem sikerült: %v", err)
}
}()
Most már hozzáférhet a profilozási adatokhoz a http://localhost:6060/debug/pprof/ címen.
Fő elérhető végpontok:
/debug/pprof/: Főoldal a rendelkezésre álló profilok listájával./debug/pprof/heap: Heap profil./debug/pprof/goroutine: Aktív goroutine profil./debug/pprof/block: Blokkolási profil./debug/pprof/threadcreate: OS szálak létrehozási profil./debug/pprof/cmdline: Az alkalmazás parancssori argumentumai./debug/pprof/profile: CPU profil (alapértelmezés szerint 30 másodpercig gyűjt adatokat)./debug/pprof/trace: Végrehajtási trace profil (alapértelmezés szerint 1 másodpercig gyűjt adatokat).
A CPU, heap és blokkolási profilok elemzéséhez általában a go tool pprof eszközt használják:
go tool pprof http://localhost:6060/debug/pprof/profile # CPU profil 30 másodpercre
ngo tool pprof http://localhost:6060/debug/pprof/heap # Heap profil
A trace elemzéséhez a go tool trace eszközt használják:
go tool trace http://localhost:6060/debug/pprof/trace
Fontos: Ügyeljen a biztonságra, és ne nyissa meg a pprof portot nyilvánosan engedély nélkül a termelésben.