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.outDosya 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 workloadgo 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
- testing.B ile Karşılaştırma Testleri Yazma
- pprof ile CPU Profilleme
- Yığın ve Ayırma Profillemesi
- Yürütme İzleme