0Pricing
Go Academy · Ders

pprof ile CPU Profilleme

CPU profillerini toplama ve görselleştirme

pprof ile CPU Profilleme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

pprof nedir?

net/http/pprof ve runtime/pprof paketleri, programınızın CPU zamanını nerede harcadığını gösteren profilleme verileri sunar. go tool pprof CLI'si profilleri analiz eder.

HTTP pprof uç noktası

Mevcut bir HTTP sunucusunda profilleme uç noktalarını /debug/pprof/ altında kaydetmek için _ "net/http/pprof" içe aktarın.

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe(":6060", nil))
}()

CPU profili yakalama

HTTP uç noktası aracılığıyla 30 saniyelik bir CPU profili yakalayın:

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

Dosya tabanlı CPU profilleme

HTTP sunucusu olmayan programlarda, bir profil dosyası yazmak için runtime/pprof kullanın:

f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workload

Sınamalarda profilleme

Gerçekçi bir sınama yükü altında profil oluşturmak için sınamaları -cpuprofile ve -memprofile işaretleriyle çalıştırın:

go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...

go tool pprof etkileşimli modu

Profili açın ve etkileşimli komutlarla inceleyin:

go tool pprof cpu.prof
(pprof) top        # top functions by CPU time
(pprof) list main  # annotated source
(pprof) web        # call graph in browser

Alev grafiği

Etkileşimli bir web arayüzü için -http=:8080 ile bir alev grafiği oluşturun (graphviz gerekir):

go tool pprof -http=:8080 cpu.prof

top çıktısını yorumlama

top, işlevleri kendi sürelerine (işlevin içinde harcanan süre) ve birikimli sürelerine (çağrılan işlevler dahil) göre sıralayarak gösterir. Doğrudan eniyileme fırsatları için kendi süresi yüksek olan işlevlere odaklanın.

Gorutin profili

/debug/pprof/goroutine uç noktası, tüm gorutinlerin yığın izlerini gösterir. Gorutin sızıntılarını veya engellenmiş gorutinleri tespit etmek için kullanın.

go tool pprof http://localhost:6060/debug/pprof/goroutine

Sürekli profilleme

Üretim sistemlerinde, hizmeti durdurmadan profilleri yakalamak için sürekli profilleme hizmetlerini (Pyroscope, Datadog, Google Cloud Profiler) kullanın.

CI'da pprof

Performans gerilemelerini üretime ulaşmadan önce tespit etmek için kodunuzun iki sürümünden alınan profilleri karşılaştırın.

Hızlı Kontrol

pprof top çıktısındaki "self" sütunu neyi temsil eder?

Özet: pprof ile CPU profilleme

Temel noktalar:

  • HTTP uç noktası için net/http/pprof; dosya için runtime/pprof paketini içe aktarın
  • Alev grafiği arayüzü için go tool pprof -http=:8080
  • top: self time = doğrudan maliyet; cumulative = çağrılan işlevler dahil toplam maliyet
  • Performans ölçümü profillemesi için go test -cpuprofile

Sıkça Sorulan Sorular

“pprof ile CPU Profilleme” dersi ücretsiz mi?

Evet — “pprof ile CPU Profilleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“pprof ile CPU Profilleme” dersinde ne öğreneceğim?

CPU profillerini toplama ve görselleştirme Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“pprof ile CPU Profilleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. testing.B ile Karşılaştırma Testleri Yazma
  2. pprof ile CPU Profilleme
  3. Yığın ve Ayırma Profillemesi
  4. Yürütme İzleme
← Go Academy Sayfasına Dön