Middle
Ako integrovať štandardný profiler do svojej aplikácie v Go?
sobes.tech AI
Odpoveď od AI
Balík net/http/pprof poskytuje HTTP spracovateľov pre profilovacie údaje.
Importujte ho:
import (
"net/http"
_ "net/http/pprof" // Je dôležité použiť '_' pre inicializáciu s vedľajšími efektmi
)
Spustite HTTP server v samostatnej gorutíne:
go func() {
// Spustite server na lokálnej adrese a na štandardnom porte pprof
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Ošetrite chybu pri spustení servera, napríklad logovaním
// log.Printf("pprof server zlyhal: %v", err)
}
}()
Teraz môžete získať prístup k profilovacím údajom na adrese http://localhost:6060/debug/pprof/.
Hlavné dostupné koncové body:
/debug/pprof/: Hlavná stránka so zoznamom dostupných profilov./debug/pprof/heap: Profil haldy./debug/pprof/goroutine: Profil aktívnych gorútín./debug/pprof/block: Profil zámkov./debug/pprof/threadcreate: Profil vytvárania vlákien OS./debug/pprof/cmdline: Príkazový riadok aplikácie./debug/pprof/profile: CPU profil (predvolene zbiera údaje 30 sekúnd)./debug/pprof/trace: Profil sledovania vykonávania (predvolene zbiera údaje 1 sekundu).
Na analýzu CPU, haldy a zámkov sa zvyčajne používa nástroj go tool pprof:
go tool pprof http://localhost:6060/debug/pprof/profile # CPU profil za 30 sekúnd
go tool pprof http://localhost:6060/debug/pprof/heap # Profil haldy
Na analýzu sledovania vykonávania sa používa nástroj go tool trace:
go tool trace http://localhost:6060/debug/pprof/trace
Dôležité: Pamätajte na bezpečnosť a neotvárajte port s pprof verejne bez autorizácie v produkcii.