Sobes.tech
Senior

Go'da profilerni qanday ulash mumkin? Profilni qanday olish mumkin?

sobes.tech AI

AIdan javob

Go tilida profiling uchun net/http/pprof va runtime/pprof paketlari ishlatiladi.

Profilerni HTTP-serverga ulash uchun, faqat import qilish kifoya:

import _ "net/http/pprof"

va HTTP-serverni ishga tushirish, masalan:

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

func main() {
    go func() {
        http.ListenAndServe(":6060", nil)
    }()
    // dastur kodining qolgan qismi
}

Ishga tushgach, profiling qilish uchun endpointlarga murojaat qilish mumkin:

  • http://localhost:6060/debug/pprof/profile — CPU profiling (standart 30 sekund)
  • http://localhost:6060/debug/pprof/heap — xotira profiling
  • http://localhost:6060/debug/pprof/goroutine — goroutine holati

CPU profilingni faylga dasturiy yozish uchun:

import (
    "os"
    "runtime/pprof"
)

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

    // profiling qilish kerak bo'lgan kod
}

Profilarni tahlil qilish uchun go tool pprof komandasi ishlatiladi.