Profil oluşturma tekniğini kullanarak Go programlarınızın performansını iyileştirin.

Profil oluşturma, bir yazılımın performansını analiz etmek için yazılım geliştirme döngüsünde yaygın olarak kullanılan bir tekniktir. program, genellikle programlar arasında bir karşılaştırma yapmak veya darboğazları ve iyileştirme alanlarını belirlemek için programı. Profil oluşturma, bellek kullanımı, CPU kullanımı, yürütme süresi ve diğer sistem düzeyinde istatistikler gibi çeşitli ölçümlerin ölçülmesini ve analiz edilmesini içerir.

Profil oluşturma, daha iyi performans için optimize edilebilmesi için bir programın en fazla kaynağı tüketen bölümlerini belirlemeyi amaçlar. Profil oluşturma, hata ayıklama, bellek yönetimini optimize etme ve eşzamanlılık ayarlama konusunda da yardımcı olabilir.

Go'da profil oluşturma

Go'da profil oluşturmak için birçok araç vardır. Bazı popüler araçlar, Go'nun yerleşik pprof profil oluşturma aracını ve Go Tool Trace ve Go-Torch paketleri gibi popüler üçüncü taraf paketlerini içerir.

instagram viewer

bu ppf paketin bir parçasıdır Çalışma süresi paket. bu ppf paketi, çalışma zamanı profil oluşturma verilerini, ppf görselleştirme aracı yorumlayabilir.

Şu şekilde içe aktarabilirsiniz: ppf Go programlarınıza paketleyin:

içe aktarmak"prof"

Go birkaç komut ve bayrak sağlar kaynak koduyla çalışmak için. Aşağıdakileri çalıştırın alet çeşitli biçimlerdeki profil oluşturma sonuçlarına erişme komutu.

Gitmek araç pprf

Komut, ilgili kullanım ayrıntılarını verir. ppf emretmek.

Go'da CPU Profili Oluşturma

CPU profili oluşturma, bir programın işlevleri yürütürken harcadığı süreyi ölçer. CPU profili oluşturma, en fazla CPU zamanı tüketen kod bölümlerini belirlemek için kullanışlıdır.

bu ppf paket, CPU profillerini toplama, CPU profil oluşturmayı başlatma ve durdurma ve profil verilerini dosyalara yazma işlevi sağlar.

Bir CPU profilini nasıl başlatıp durduracağınız ve verileri bir profil oluşturma dosyasına nasıl yazacağınız aşağıda açıklanmıştır:

içe aktarmak (
"işletim sistemi"
"çalışma zamanı/pprof"
)

işlevana() {
f, hata := os. Yaratmak("cpu_profile.prof")
eğer hata!= sıfır {
panik(hata)
}
ertelemek F. Kapalı()

hata = pprof. BaşlangıçCPUProfili (f)
eğer hata!= sıfır {
panik(hata)
}
ertelemek ppr. StopCPUProfile()

// profillenecek kod
}

bu ana işlevi bir dosya oluşturur ve dosya akışını bir ertelemek açıklama ve Kapalı dosya örneğinin işlevi. bu BaşlangıçCPUProfili işlevi bir CPU profili başlatır ve verileri dosyaya yazar ve CPU Profilini Durdur ile profil akışını kapatır ertelemek ifade. CPU profilini başlatıp durdurduktan sonra, analiz etmek istediğiniz kodu yazmaya devam edebilirsiniz.

İşte çalıştırmanın sonucu ppf programdan profil dosyası ile komut:

çalışan ppf komutu, profil oluşturma verilerini keşfetmenizi sağlayan etkileşimli bir kabuk başlatır. gibi komutları kullanabilirsiniz. tepe Ve liste Yürütülmesi en çok zaman alan işlevleri görüntülemek için.

Go'da Bellek Profili Oluşturma

Bellek profili oluşturma, koddaki işlevlerin bellek kullanımını ölçerek koddaki bellek sızıntılarını ve pahalı bellek kullanımını belirlemek için kullanılan bir tekniktir.

ile bir bellek profili başlatabilirsiniz. Yığın Profili Yaz işlev. bu Yığın Profili Yaz işlev dosya örneğini alır ve profil verilerini dosyaya yazar.

içe aktarmak (
"işletim sistemi"
"çalışma zamanı/pprof"
)

işlevana() {
f, hata := os. Yaratmak("mem_profile.prof")
eğer hata!= sıfır {
panik(hata)
}
ertelemek F. Kapalı()

hata = pprof. WriteHeapProfile (f)
eğer hata!= sıfır {
panik(hata)
}

// profillenecek kod
}

bu ana işlevi bir profil oluşturma dosyası oluşturur ve Yığın Profili Yaz işlev, dosya örneğini argüman olarak alır ve dosyaya yazdıktan sonra bir yazma hatası türü döndürür. daha fazla yapabilirsin hatayı ihtiyacınıza göre ele alın.

Go ile Profil Oluşturmayı Engelle

Blok profili oluşturma, bir programın muteksler ve kanallar gibi senkronizasyon ilkelleri için bekleme süresini ölçer. Blok profili oluşturma, kodun bloke etmeye neden olabilecek kısımlarını belirlemek için kullanışlıdır.

bu Bakmak işlev, belirtilen bir dizenin adıyla profili döndürür ve Yaz işlevi Bakmak işlev, dosyaya profilin pprof biçimli bir anlık görüntüsünü yazar.

Go programlarınız için blok profili oluşturmayı şu şekilde uygulayabilirsiniz:

içe aktarmak (
"işletim sistemi"
"çalışma zamanı/pprof"
)

işlevana() {
f, hata := os. Yaratmak("block_profile.prof")
eğer hata!= sıfır {
panik(hata)
}
ertelemek F. Kapalı()

hata = pprof. Bakmak("engellemek").Yaz (f, 0)
eğer hata!= sıfır {
panik(hata)
}

// profillenecek kod
}

Program, blok profil verilerini depolamak için bir dosya oluşturur, blokları arar. Bakmak işlevini kullanır ve blok profili verilerini dosyaya yazar.

Go ile Profil Oluşturmayı İzleyin

İzleme profili oluşturma, goroutine programlama ve sistem çağrıları dahil olmak üzere bir programın yürütülmesini ölçmek için kullanılan bir tekniktir. İz profili oluşturma, performans darboğazlarını belirlemek ve farklı program bölümleri arasındaki etkileşimleri anlamak için kullanışlıdır.

bu iz paket, izleme profillemesi için işlevler sağlar. Bu paket aynı zamanda Çalışma süresi paket.

içe aktarmak (
"işletim sistemi"
"çalışma zamanı/izleme"
)

işlevana() {
f, hata := os. Yaratmak("trace.out")
eğer hata!= sıfır {
panik(hata)
}
ertelemek F. Kapalı()

hata = iz. Başlat (f)
eğer hata!= sıfır {
panik(hata)
}
ertelemek iz. Durmak()

// profillenecek kod
}

Program, izleme verilerini depolamak için bir izleme dosyası oluşturur, izleyiciyi Başlangıç dosya örneğini alan ve bir hata türü döndüren ve izleyiciyi Durmak işlev.

Go ayrıca kaynak kodunu biçimlendirmek için araçlar sağlar. Kod standartlarını korumak için profil oluşturma araçlarının yanı sıra biçimlendirme araçlarını da kullanabilirsiniz. bu gofmt aracı, paketleriniz için belirtilen kurallara göre Go kaynak kodunuzu biçimlendirmek için kullanabileceğiniz yerleşik bir biçimlendirme aracıdır.