Go 1.25'e Deneysel Green Tea Çöp Toplayıcısı Geldi
Go 1.25'teki deneysel Green Tea GC, bazı iş yüklerinde çöp toplama süresini %40'a kadar azaltıyor; Google'da üretimde kullanılıyor ve Go 1.26'da varsayılan olması planlanıyor.
Go ekibi, GOEXPERIMENT=greenteagc bayrağıyla etkinleştirilebilen yeni deneysel çöp toplayıcı Green Tea'yi Go 1.25 ile duyurdu. Google'ın kendi üretim ortamlarında test edilen bu toplayıcı, birçok iş yükünde çöp toplamada geçen süreyi ortalama %10 azaltırken, bazı senaryolarda bu oran %40'a kadar çıkabiliyor. Ekip, bazı iş yüklerinin bu iyileştirmeden daha az fayda gördüğünü kabul ediyor ve geliştiricilerden geri bildirim topluyor; elde edilen verilere göre Green Tea'nin Go 1.26'da varsayılan çöp toplayıcı haline gelmesi planlanıyor.
Blog yazısı, Green Tea'nin arka planını anlamak için Go'nun mevcut mark-sweep algoritmasını da baştan anlatıyor: nesneler ve işaretçilerden oluşan bir grafiğin kök değişkenlerden (roots) başlayarak taranması (mark) ve erişilemeyen belleğin geri kazanılması (sweep). Bu temel algoritmanın eşzamanlı ve paralel çalıştığı, sayfa (page) bazlı bellek organizasyonu ve nesne başına görülüp görülmediğini tutan meta veri bitleri gibi detaylarla zenginleştirildiği vurgulanıyor; bu detaylar Green Tea'nin getirdiği optimizasyonların temelini oluşturuyor.
Mühendisler için önemi açık: GC duraklamalarının ve CPU maliyetinin azalması, özellikle yüksek tahsisli (allocation-heavy) Go servislerinde doğrudan performans ve maliyet avantajı sağlıyor. Deneysel bayrakla test edilebilir olması, üretime geçmeden önce gerçek iş yükleriyle doğrulama imkânı sunuyor.