Go 1.26 daha esnek bir sözdizimi ve daha hızlı bir çöp toplayıcı sunuyor

kapanış bildirimi

Bu makale İngilizce olarak da mevcuttur. Teknik yardımla tercüme edildi ve yayınlanmadan önce editoryal olarak gözden geçirildi.

Go ekibi, Go programlama dilinin 1.26 sürümünü yayınladı. Sürüm, dili iyileştirir, varsayılan olarak yeni bir çöp toplayıcıyı etkinleştirir ve temel araçları modernleştirir.

Duyurudan sonra devamını okuyun

Entegre fonksiyon new artık bir ifadeyi işlenen olarak, yani işlevin uygulandığı bir değer veya ifade olarak kabul eder. Bu, geliştiricilerin bir değişken oluştururken doğrudan bir başlangıç ​​değeri belirtmesine ve kodu daha kompakt bir şekilde formüle etmesine olanak tanır. Bunun bir örneğini duyuru yazısında bulabilirsiniz.

Ayrıca genel türler, kendi tür parametresi listelerinde kendilerine referans verebilir. Bu, daha karmaşık veri yapılarının ve arayüzlerinin uygulanmasını basitleştirir.

Daha önce deneysel olan “Yeşil Çay” çöp toplayıcısı (GC), Go 1.26'dan bu yana varsayılan olarak etkindir. Go 1.25'teki bir test aşamasından sonra ekip, toplanan geri bildirimlere dayanarak onu düzenli olarak devreye alıyor.

Gözden geçirilmiş GC tasarımı, daha iyi bellek yerelleştirmesi ve artırılmış CPU ölçeklenebilirliği de dahil olmak üzere, özellikle küçük nesnelerin işaretlenmesini ve taranmasını iyileştirmeyi amaçlamaktadır. Uygulamaya bağlı olarak Go ekibi, öncelikle atık yoğun programlar için GC genel gider maliyetlerinde %10-40 civarında olası azalmalar olduğunu bildiriyor.

Duyurudan sonra devamını okuyun

Yeni toplayıcıyı kullanmak istemiyorsanız derleme sırasında kullanabilirsiniz. GOEXPERIMENT=nogreenteagc devre dışı bırakın. Bu devre dışı bırakma seçeneği artık Go 1.27'de kullanılamayacak.

Go ekibine göre Go 1.26, CGO çağrılarının temel yükünü yaklaşık %30 oranında azaltıyor. Her geçiş daha düşük çalışma zamanı maliyetlerine neden olduğundan Go kodu ile C kodu arasında sık sık geçiş yapan programlar bundan yararlanabilir. Ek olarak, 64 bit sistemlerdeki çalışma zamanı, başlangıçta yığın tabanı adresini rastgele hale getirir. Bu, bellek adreslerini tahmin etmeyi daha da zorlaştırır ve öncelikle cgo ile birlikte belirli saldırı senaryolarına karşı direnci artırmayı amaçlamaktadır.

Derleyici ayrıca bellek optimizasyonuna daha yoğun bir şekilde müdahale eder: çoğu durumda yığın yerine yığın üzerinde dilimlerin yedek deposunu oluşturabilir, bu da tahsisleri azaltır ve performansı artırabilir. Sorun ortaya çıkarsa, bu şu şekilde yapılabilir: bisectenstrüman ve bayrak -compile=variablemake Soruna neden olan alanı izole edin. Üstünde -gcflags=all=-d=variablemakehash=n yeni yığın tahsisleri tamamen kapatılabilir.

Geliştirme ekibi sorumludur go fix yakın zamanda Go Analizi çerçevesine dayalı olarak uygulandı. Yeni dil ve kütüphane özelliklerine güvenli uyarlamalar öneren çok sayıda modernleştirici içerir. Yeni bir çevrimiçi ayrıştırıcı, yönergeyle işlevleri dikkate alır //go:fix inline.

Paketler de yeni crypto/hpke, crypto/mlkem/mlkemtest VE testing/cryptotest. Deneysel olanlar da diğerleri arasında simd/archsimd, runtime/secret aynı zamanda bir tane goroutineleak– İçerideki profil runtime/pprof hazır.

Daha fazla bilgiyi Go 1.26 sürüm notlarında bulabilirsiniz.


(mdo)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir