Sobes.tech
Middle

Go uygulamanıza standart profilörü nasıl entegre edersiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

net/http/pprof paketi, profil verileri için HTTP işleyicileri sağlar.

Bunu içe aktarın:

import (
	"net/http"
	_ "net/http/pprof" // Yan etki ile başlatma için '_' kullanmak önemlidir
)

Ayrı bir goroutine'da HTTP sunucusu başlatın:

go func() {
	// Yerel adres ve standart pprof portunda sunucu başlat
	if err := http.ListenAndServe("localhost:6060", nil); err != nil {
		// Sunucu başlatma hatasını ele alın, örneğin günlükleme
		// log.Printf("pprof sunucusu başarısız oldu: %v", err)
	}
}()

Artık profil verilerine http://localhost:6060/debug/pprof/ adresinden erişebilirsiniz.

Mevcut ana uç noktalar:

  • /debug/pprof/: Mevcut profillerin listesi ile ana sayfa.
  • /debug/pprof/heap: Heap profili.
  • /debug/pprof/goroutine: Aktif goroutine profili.
  • /debug/pprof/block: Bloklama profili.
  • /debug/pprof/threadcreate: İşletim sistemi thread oluşturma profili.
  • /debug/pprof/cmdline: Uygulamanın komut satırı.
  • /debug/pprof/profile: CPU profili (varsayılan olarak 30 saniye veri toplar).
  • /debug/pprof/trace: İzleme profili (varsayılan olarak 1 saniye veri toplar).

CPU, heap ve blok profillerini analiz etmek için genellikle go tool pprof aracı kullanılır:

go tool pprof http://localhost:6060/debug/pprof/profile # 30 saniyelik CPU profili
go tool pprof http://localhost:6060/debug/pprof/heap # Heap profili

İzleme profilini analiz etmek için go tool trace aracı kullanılır:

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

Önemli: Güvenliği unutmayın ve üretimde pprof portunu yetkilendirme olmadan açmayın.