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
new daha anlamlı hale gelir ve jenerikler yinelemeli olarak kullanılabilir
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.
GC Yeşil Çay artık standart
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.
Çalışma zamanı ve derleyici bellek yönetimini optimize eder
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.
git modernleştirici olarak yerleş
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)

Bir yanıt yazın