Sobes.tech
Senior

Ինչպես միացնել պրոֆայլերը Go-ում: Ինչպես նկարել պրոֆիլներ?

sobes.tech AI

Պատասխան AI-ից

Go-ում պրոֆիլավորման համար օգտագործվում են net/http/pprof և runtime/pprof փաթեթները:

HTTP սերվերին պրոֆիլեր կապելու համար, պարզապես պետք է ներմուծել՝

import _ "net/http/pprof"

և սկսել HTTP սերվերը, օրինակ՝

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

func main() {
    go func() {
        http.ListenAndServe(":6060", nil)
    }()
    // հավելվածի մնացած կոդը
}

Սկսելուց հետո, պրոֆիլներ վերցնելու համար կարող եք մուտք գործել endpoint-ներին՝

  • http://localhost:6060/debug/pprof/profile — CPU պրոֆիլ (նույնպես 30 վայրկյան)
  • http://localhost:6060/debug/pprof/heap — հիշողության պրոֆիլ
  • http://localhost:6060/debug/pprof/goroutine — goroutine-ների վիճակը

Ծրագրային կերպով CPU պրոֆիլը ֆայլում գրանցելու համար՝

import (
    "os"
    "runtime/pprof"
)

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

    // պրոֆիլավորելի կոդ
}

Պրոֆիլների վերլուծության համար օգտագործվում է go tool pprof հրամանը։