V8 ekibi C++ için geliştirdiği Oilpan çöp toplayıcısını kütüphane yapıyor
Öne çıkanlar
- Oilpan, Blink içerisinden çıkarılarak tüm V8 projelerine açık bağımsız bir C++ kütüphanesine dönüştürülüyor.
- Chrome 78 ile devreye alınan eşzamanlı süpürme, ana iş parçacığı süresini ortalama yüzde 42 azalttı.
- Sistem, nesnelerin yıkıcı fonksiyonlarını ana iş parçacığında çalıştırarak veri yarışmalarını engelliyor.
Chromium ve Blink tarayıcı motorunun C++ bellek yönetimini üstlenen Oilpan çöp toplayıcısı, tüm V8 kullanıcılarının erişebileceği bağımsız bir kütüphane haline getiriliyor. V8 geliştirici ekibi, JavaScript ve DOM arasındaki karmaşık nesne grafını tek bir öbek gibi yönetmek için geliştirilen sistemin çalışma prensiplerini ve eşzamanlı süpürme mimarisini açıkladı. Proje, işaretleme ve süpürme adımlarını içeren iki aşamalı bir model kullanıyor.
Oilpan, statik C++ nesnelerinin işaretlenmesinde ziyaretçi deseninden yararlanırken yerel çağrı yığını için muhafazakar yığın taraması yürütüyor. Yığın üzerindeki nesneler için ek bir soyutlama maliyeti getirmeyen sistem, yığın taramasını çöp toplama aşamasına erteliyor. Süpürme safhasında nesnelerin yıkıcı fonksiyonlarını çağıran mekanizma, Clang eklentileriyle yıkıcıların diğer canlı öbek nesnelerine erişmesini engelleyerek veri yarışmalarının önüne geçiyor.
Chrome 78 sürümüyle birlikte arka plan iş parçacıklarında çalışan eşzamanlı süpürme mimarisine geçiş yapıldı. Yıkıcı gerektirmeyen bellek blokları doğrudan arka planda serbest bırakılırken, yıkıcı çağrıları ana iş parçacığına yönlendirilerek güvenli biçimde işletiliyor. Gerçek dünya testlerinde bu yaklaşım, ana iş parçacığındaki süpürme süresini ortalama yüzde 42 oranında kısalttı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.