11 Şub 2023·1 dk okuma

Go 1.20, Profil Kılavuzluğunda Optimizasyon ve Dil Geliştirmeleri için Önizleme Sunuyor

Google tarafından geliştirilen açık kaynak dilinin en son güncellemesi olan Go 1.20, profil kılavuzlu optimizasyon (PGO) için bir önizleme ve dil iyileştirmeleri içerir. PGO, satır içi optimizasyonla performansı %3 ila %4 oranında artırırken diğer optimizasyonlar da yolda.

Go 1.20, Profil Kılavuzluğunda Optimizasyon ve Dil Geliştirmeleri için Önizleme Sunuyor

Basitliği, eşzamanlılığı ve işlevsel programlama özellikleriyle tanınan Google tarafından oluşturulan açık kaynak dilinin üretim sürümü olan Go 1.20, derleyici için profil kılavuzlu optimizasyonun (PGO) önizlemesiyle birlikte sunuldu. Go 1.20, resmi go.dev web sitesinden indirilebilir.

Go 1.20'deki PGO önizlemesiyle, derleyici araç zinciri, çalışma zamanı profil bilgilerine bağlı olarak uygulamaya ve iş yüküne özel optimizasyonlar gerçekleştirebilir. Geçerli derleyici, runtime/pprof veya net/http/pprof paketleri kullanılarak toplanabilecek pprof CPU profillerini destekler.

Geri bildirime yönelik optimizasyon olarak da bilinen PGO, uygulamanın temsili çalıştırmalarından elde edilen profil verilerinin uygulamanın bir sonraki derlemesi için derleyiciye geri beslenmesini içerir. Derleyici bu bilgileri kullanarak daha bilinçli optimizasyon kararları verebilir. Temsili bir Go programı seti için kıyaslamalar, PGO satır içi optimizasyonunun etkinleştirilmesinin performansı yaklaşık %3 ila %4 oranında artırdığını göstermektedir. Gelecekteki sürümlerin daha fazla PGO optimizasyonu getirmesi bekleniyor.

PGO'nun tanıtımıyla birlikte, Go 1.20 ayrıca dilde dört değişiklik getiriyor. İlk olarak, 2021'de Go 1.17'de tanıtılan bir dilimi dizi işaretçisine dönüştürme yeteneği artık bir dilimden diziye dönüştürmeleri de kapsayacak şekilde genişliyor. İkincisi, güvenli olmayan paket üç yeni işlev içerir: SliceData, String ve StringData. Bu işlevler, tam temsillerinden bağımsız olarak, dilim ve dize değerleri oluşturmak ve yapılarını çözmek için eksiksiz bir yetenek sunar.

Üçüncüsü, belirtim şimdi, alanları yapı türü tanımında göründükleri sırayla dikkate alarak ve ilk uyumsuzlukta durarak, yapı değerlerinin her seferinde bir alanla karşılaştırılmasını sağlar. Dördüncüsü, sıradan arayüzler gibi karşılaştırılabilir türler, tür bağımsız değişkenleri kesinlikle karşılaştırılabilir olmasa bile karşılaştırılabilir kısıtlamaları karşılayabilir. Bu, bir arabirim türü veya bir arabirim türü içeren bir bileşik tür gibi, kesinlikle karşılaştırılabilir olmayan bir tür bağımsız değişkeni ile karşılaştırılabilir kısıtlamalar tarafından kısıtlanan bir tür parametresinin somutlaştırılmasını sağlar.

Bu dil değişikliklerine ek olarak Go 1.20, uygulamalar ve entegrasyon testleri de dahil olmak üzere programlar için kod kapsamı profillerinin toplanması gibi çeşitli diğer geliştirmelerle birlikte gelir. $GOROOT/pkg dizini artık standart kitaplık için önceden derlenmiş paket etkinliklerini tutmaz, bu da Go dağıtım boyutunu azaltır ve cgo paketleri için C araç zinciri çarpıklığını önler. Ayrıca, go test –json uygulanması sağlamlığı artırmak için güçlendirilirken, go version -m komutu artık yürütme izni olmadan Windows DLL'leri ve Linux ikili dosyaları da dahil olmak üzere daha geniş bir Go ikili dosyası yelpazesini okur.

Go 1.20 ayrıca RISC-V'de FreeBSD için deneysel destek sağlar ve C alet zinciri olmayan sistemlerde varsayılan olarak cgo'yu devre dışı bırakır. Ancak Go 1.20, macOS 10.13 High Sierra ve 10.14 Mojave'yi destekleyen son sürüm olacak ve Go 1.21, macOS 10.15 Catalina veya sonraki sürümünü gerektiriyor.

AppMaster.io gibi No-code platform, Go 1.20 gibi yeni optimize edilmiş dilleri birleştirmekten büyük fayda sağlayabilir. İşletmeler, web, mobil ve arka uç uygulamaları için bu tür güçlü araçları entegre ederek üretkenlik, kullanıcı deneyimi ve ölçeklenebilirlikte önemli iyileştirmeler elde edebilir. Teknoloji eğrisinin bir adım önünde olmak için no-code ve low-code uygulama geliştirme hakkında daha fazla bilgi edinin.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started