Profiling: pprof ile Performans Darboğazlarını Tespit Etme

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18

Kodum Neden Yavaş?​

"Tahmin etme, ölç!" Yazılım mühendisliğinin altın kuralıdır. Kodunuzun %80 zamanını, kodun %20'lik bir kısmı harcar. Ama hangi %20?Go'nun dahili pprof aracı, programın röntgenini çeker. Hangi fonksiyon CPU'yu yiyor? Hangi değişken RAM'i şişiriyor? Hepsini görebilirsiniz.

pprof Entegrasyonu​

Web sunucunuza pprof eklemek sadece tek bir satırdır!

Kod:
package main

import ("fmt""net/http"

// SİHİRLİ SATIR: Bu import, otomatik olarak /debug/pprof rotalarını açar<br>_ "net/http/pprof" <br>
)

func main() {go func() {// Ana uygulamanın yanında, 6060 portunda profil sunucusu açıyoruzfmt.Println("Pprof sunucusu: localhost:6060")http.ListenAndServe("localhost:6060", nil)}()

// ... Ana uygulamanız burada çalışır ...<br>select {}<br>
}

Analiz Yapma​

Program çalışırken terminalden şu komutu girin:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

Bu komut 30 saniye boyunca programı izler ve interaktif bir konsol açar.

  • top: En çok CPU harcayan fonksiyonları listeler.
  • list FonksiyonAdi: O fonksiyonun satır satır ne kadar kaynak tükettiğini gösterir.
  • web: Tarayıcıda görsel bir grafik (Graphviz) açar.

Sonuç​

pprof, Go'yu diğer dillerden ayıran en güçlü araçlardan biridir. Prodüksiyon ortamında bile (dikkatli kullanıldığında) performans analizi yapmanıza olanak tanır. Bir bellek sızıntısını (Memory Leak) bulmanın en kesin yolu budur.
 
Geri
Üst