Sobes.tech
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.