Sobes.tech
Middle

Go tətbiqinizə standart profileri necə daxil etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

net/http/pprof paketi, profil məlumatları üçün HTTP işləyiciləri təmin edir.

Onu idxal edin:

import (
	"net/http"
	_ "net/http/pprof" // Effektli təsir üçün '_' istifadə etmək vacibdir
)

Ayrı bir goroutine-də HTTP serverini başladın:

go func() {
	// Lokal ünvan və standart pprof portunda serveri işə salın
	if err := http.ListenAndServe("localhost:6060", nil); err != nil {
		// Serverin başlaması zamanı xətanı idarə edin, məsələn, qeyd edin
		// log.Printf("pprof serveri uğursuz oldu: %v", err)
	}
}()

İndi profil məlumatlarına http://localhost:6060/debug/pprof/ ünvanından daxil ola bilərsiniz.

Əsas mövcud son nöqtələr:

  • /debug/pprof/: Mövcud profillərin siyahısı ilə əsas səhifə.
  • /debug/pprof/heap: Yığım profili.
  • /debug/pprof/goroutine: Aktiv goroutine-lərin profili.
  • /debug/pprof/block: Bloklamaların profili.
  • /debug/pprof/threadcreate: Əməliyyat sisteminin thread yaradılması profili.
  • /debug/pprof/cmdline: Tətbiqin komanda xətti.
  • /debug/pprof/profile: CPU profili (varsayılan olaraq 30 saniyə məlumat toplayır).
  • /debug/pprof/trace: İcra izləmə profili (varsayılan olaraq 1 saniyə məlumat toplayır).

CPU, yığım və bloklama profillərini analiz etmək üçün adətən go tool pprof vasitəsi istifadə olunur:

go tool pprof http://localhost:6060/debug/pprof/profile # 30 saniyəlik CPU profili
go tool pprof http://localhost:6060/debug/pprof/heap # Yığım profili

İcra izləməsini analiz etmək üçün go tool trace vasitəsi istifadə olunur:

go tool trace http://localhost:6060/debug/pprof/trace

Vacib: Təhlükəsizliyi unutmayın və prodakşnədə pprof portunu icazəsiz açmayın.