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.