[ad_1]
Google tarafından geliştirilen programlama dilinin Ağustos ayında yayınlanacak bir güncellemesi olan Go 1.19, gözden geçirilmiş bir bellek modeli ve atomik değerlerin kullanımını kolaylaştıran yeni türler sunuyor.
Şimdi bir önizleme aşamasında, Go 1.19 şuradan indirilebilir: go.dev. Bu noktada sürüm hala kararsız olarak kabul ediliyor.
Go 1.19 ile, dilin bellek modeli, Go’yu C, C++, Java, JavaScript ve Swift tarafından kullanılan bellek modeliyle uyumlu hale getirmek için revize edildi. sürüm notları. Go 1.19 ayrıca şu anda yeni türler içeriyor: sync/atomic
paket atomic.int64 ve atomic.Pointer(T) gibi atomik değerleri kullanmayı kolaylaştırır.
Go bellek modeli, bir goroutindeki bir değişkenin okumalarının, farklı bir goroutinde aynı değişkene yazılanlar tarafından üretilen değerleri gözlemlemenin garanti edilebileceği koşulları belirtir. Go, diğer dillerde sunulan daha rahat formlardan hiçbirini değil, yalnızca sıralı olarak tutarlı atomlar sağlar.
Go 1.19 ayrıca dile “küçük” bir değişiklik getiriyor. tip parametrelerinin kapsamına düzeltme yöntem bildirimlerinde. Mevcut programlar etkilenmez. Go 1.19, uzun süredir aranan jenerik özellikleri içeren Go 1.18’in Mart ayındaki çok önemli sürümünü takip ediyor.
Go 1.19’daki diğer yeni özellikler ve iyileştirmeler:
- Çalışma zamanı artık bir yumuşak bellek sınırı desteği içerir. Sınır, Go yığını ve çalışma zamanı tarafından yönetilen diğer belleği içerir ve ikili dosya eşlemeleri, diğer dillerde yönetilen bellek ve işletim sistemi tarafından Go programı adına tutulan bellek gibi harici bellek kaynaklarını hariç tutar. Ayrıca, uygulama periyodik bir GC döngüsünü zorlamak için yeterince boşta olduğunda, çalışma zamanı artık boş işletim sistemi iş parçacıklarında daha az GC çalışan rutini zamanlıyor.
- Derleyici artık büyük tamsayı ve dize anahtarı deyimlerini uygulamak için bir atlama tablosu kullanıyor. Switch ifadesi için performans iyileştirmeleri değişiklik gösterebilir ancak %20 daha hızlı olabilir.
- Sürüm, belge yorumlarındaki bağlantıları, listeleri ve daha net başlıkları destekler.
- Yapı kısıtlaması,
unix
şimdi tanınır//go:build
çizgiler. - Linux üzerinde Loongson 64-bit mimarisi LoongArch için destek eklendi.
Telif Hakkı © 2022 IDG Communications, Inc.
[ad_2]
Kaynak : https://www.infoworld.com/article/3667273/go-language-revises-memory-model.html#tk.rss_all