0Pricing
Go Academy · Ders

Yürütme İzleme

Goroutine düzeyinde çözümleme için go tool trace

Yürütme İzleme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. 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.

Yürütme izlemesi nedir?

Go yürütme izleyicisi, gorutin zamanlamasının, çöp toplama olaylarının, sistem çağrılarının ve öbek büyümesinin zaman çizelgesini kaydeder. CPU veya öbek profillerinde bulunmayan paralellik ve gecikmeye dair görsel bir görünüm sağlar.

İz yakalama

HTTP uç noktası aracılığıyla bir iz yakalayın:

curl http://localhost:6060/debug/pprof/trace?seconds=5 -o trace.out
go tool trace trace.out

Dosya tabanlı iz

Programlı olarak bir iz kaydetmek için runtime/trace kullanın:

f, _ := os.Create("trace.out")
trace.Start(f)
defer trace.Stop()
// run workload

go test -trace

Sınama veya performans ölçümü çalıştırmaları sırasında bir iz yakalayın:

go test -trace trace.out -bench=. ./...
go tool trace trace.out

İz görüntüleyicisi

İz görüntüleyicisi (go tool trace), gorutin zaman çizelgelerini, çöp toplama olaylarını, öbek boyutunu ve her an her gorutinin yığın izlerini göstererek tarayıcıda açılır.

Gorutin analizi

Gorutin Analizi görünümü, gorutinleri işleve göre gruplar ve her birinin şu durumlarda ne kadar süre kaldığını gösterir: çalışıyor, çalışmaya hazır (P bekliyor), engellenmiş (kanal/kilit/sistem çağrısı) ve uyuyor.

Zamanlayıcı gecikmesini bulma

Yüksek "çalışmaya hazır" süresi, gorutinlerin hazır olduğu ancak zamanlanmadığı anlamına gelir. Bu durum, GOMAXPROCS P'leri için yarışan çok fazla gorutin veya CPU yetersizliği yaşayan bir süreç olduğunu gösterir.

Çöp toplamanın etkisi

Dünyayı durduran çöp toplama duraklamaları, tüm gorutinlerin üzerinde gri çubuklar olarak görünür. Uzun duraklamalar veya sık çöp toplama, aşırı ayırmaya işaret eder — ayırmaları azaltmak için bunu öbek profillemesiyle birlikte kullanın.

Kullanıcı açıklamaları

Daha kolay analiz için kendi kod bölümlerinizi açıklamak üzere trace.WithRegion ve trace.Log kullanarak ize özel aralıklar ekleyin.

trace.WithRegion(ctx, "parse request", func() {
    parseRequest(req)
})

görev ve bölge

trace.NewTask, ilişkili bölgeleri adlandırılmış bir görev altında gruplandırarak birden çok gorutin üzerindeki mantıksal bir işlemin uçtan uca gecikmesini ölçmenizi sağlar.

ctx, task := trace.NewTask(ctx, "handle request")
defer task.End()

İz ve profil karşılaştırması

CPU profili: zaman içinde CPU tüketen işlevler. Öbek profili: bellek ayıran işlevler. İz: gorutinlerin ne zaman çalıştığı, engellendiği ve çöp toplamanın bunların arasına nasıl girdiği — farklı sorular için farklı araçlar.

Hızlı Kontrol

Yürütme izinde gorutinin "çalışmaya hazır" durumu ne anlama gelir?

Özet: Yürütme izlemesi

Temel noktalar:

  • go tool trace, gorutin zaman çizelgelerini, çöp toplama olaylarını ve zamanlamayı gösterir
  • HTTP uç noktası veya runtime/trace paketi aracılığıyla yakalayın
  • Çalışmaya hazır süresi → zamanlayıcı çekişmesi; çöp toplama duraklamaları → aşırı ayırmalar
  • Kullanıcı açıklamaları (WithRegion, NewTask) kendi bölümlerinizi işaretler

Sıkça Sorulan Sorular

“Yürütme İzleme” dersi ücretsiz mi?

Evet — “Yürütme İzleme” 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.

“Yürütme İzleme” dersinde ne öğreneceğim?

Goroutine düzeyinde çözümleme için go tool trace 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 4. dersidir.

“Yürütme İzleme” 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