Sobes.tech
Senior

Go-da profiler necə qoşulur? Profil necə çəkilir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da profil üçün net/http/pprofruntime/pprof paketləri istifadə olunur.

Profileri HTTP-serverə qoşmaq üçün, sadəcə olaraq idxal etmək kifayətdir:

import _ "net/http/pprof"

və HTTP-serveri işə salmaq, məsələn:

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

func main() {
    go func() {
        http.ListenAndServe(":6060", nil)
    }()
    // tətbiqin digər kodu
}

İşə salındıqdan sonra, endpoint-lərə müraciət etməklə profillər götürmək mümkündür:

  • http://localhost:6060/debug/pprof/profile — CPU profili (standart 30 saniyə)
  • http://localhost:6060/debug/pprof/heap — yaddaş profili
  • http://localhost:6060/debug/pprof/goroutine — goroutine vəziyyəti

CPU profilini fayla proqram vasitəsilə yazmaq üçün:

import (
    "os"
    "runtime/pprof"
)

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

    // profil ediləcək kod
}

Profiləri analiz etmək üçün go tool pprof əmri istifadə olunur.