Sobes.tech
Senior

Go'da profiler nasıl bağlanır? Profilleri nasıl alınır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde profil oluşturmak için net/http/pprof ve runtime/pprof paketleri kullanılır.

Profileri HTTP sunucusuna bağlamak için, sadece içe aktarmak yeterlidir:

import _ "net/http/pprof"

ve HTTP sunucusunu başlatmak, örneğin:

import (
    "net/http"
    _ "net/http/pprof"
)

func main() {
    go func() {
        http.ListenAndServe(":6060", nil)
    }()
    // uygulamanın diğer kodu
}

Başlatmadan sonra, uç noktaları ziyaret ederek profilleri alabilirsiniz:

  • http://localhost:6060/debug/pprof/profile — CPU profili (varsayılan 30 saniye)
  • http://localhost:6060/debug/pprof/heap — bellek profili
  • http://localhost:6060/debug/pprof/goroutine — goroutine durumu

CPU profilini dosyaya programlı olarak kaydetmek için:

import (
    "os"
    "runtime/pprof"
)

func main() {
    f, _ := os.Create("cpu.prof")
    pprof.StartCPUProfile(f)
    defer pprof.StopCPUProfile()

    // profil alınacak kod
}

Profilleri analiz etmek için go tool pprof komutu kullanılır.