RenderingNG projesi tarafından uygulanan krom optimizasyon sonuçları

Chromium geliştiricileri, Chrome'un performansını, güvenilirliğini ve genişletilebilirliğini artırmaya yönelik devam eden çalışmaları amaçlayan ve 8 yıl önce başlatılan RenderingNG projesinin ilk sonuçlarını özetledi.

Örneğin, Chrome 94'te Chrome 93'e kıyasla eklenen optimizasyonlar, sayfa oluşturma gecikmesinde %8'lik bir azalma ve pil ömründe %0.5'lik bir artışla sonuçlandı. Chrome'un kullanıcı tabanının boyutuna bakıldığında bu, her gün 1400 yıldan fazla CPU zamanından küresel tasarruf anlamına geliyor. Önceki sürümlerle karşılaştırıldığında modern Chrome, grafikleri %150'den daha hızlı işliyor ve sorunlu donanımdaki GPU sürücüsü çökmelerine karşı 6 kat daha az duyarlı.

Performans kazanımları elde etmek için uygulanan yöntemler arasında, GPU tarafında farklı piksellerin rasterleştirme işlemlerinin paralelleştirilmesini ve işlemcilerin farklı CPU çekirdekleri arasında daha aktif bir şekilde dağıtılmasını (JavaScript yürütme, sayfa kaydırmayı işleme, video ve görüntülerin kodunu çözme, proaktif olarak veri oluşturma) kaydettik. içerik). Aktif paralelleştirmeyi sınırlayan faktör, artan sıcaklıklar ve artan güç tüketimiyle yansıtılan CPU üzerindeki artan yüktür; bu nedenle performans ve güç tüketimi arasında optimum dengeyi yakalamak önemlidir. Örneğin, pil gücüyle çalışırken, oluşturma hızından fedakarlık edebilirsiniz, ancak ayrı bir iş parçacığında kaydırma işleminden fedakarlık edemezsiniz, çünkü arayüz duyarlılığındaki azalma kullanıcı tarafından fark edilecektir.

RenderingNG projesi çerçevesinde uygulanan teknolojiler, birleştirme yaklaşımını tamamen değiştiriyor ve ekran çözünürlüğü ve yenileme hızı gibi özellikleri dikkate alarak sayfaların ayrı bölümleriyle ilgili olarak GPU ve CPU üzerindeki hesaplamaları optimize etmek için farklı teknolojileri uyarlanabilir bir şekilde kullanmanıza olanak tanıyor Vulkan, D3D12 ve Metal gibi gelişmiş grafik API'leri için destek sistemindeki varlığın yanı sıra. Optimizasyon örnekleri arasında GPU dokularının önbelleğe alınmasının ve web sayfalarının bazı bölümlerinin sonuçlarının oluşturulmasının aktif kullanımı ve ayrıca oluşturma sırasında yalnızca sayfanın kullanıcı tarafından görülebilen alanının dikkate alınması yer alır (sayfanın bazı kısımlarını oluşturmanın bir anlamı yoktur). diğer içeriklerin kapsadığı sayfa).

RenderingNG'nin önemli bir unsuru da sayfaların farklı bölümlerini işlerken performansı izole etmektir; örneğin, reklamların iframe'lerde sunulması, animasyonların görüntülenmesi, ses ve video oynatılması, içeriğin kaydırılması ve JavaScript'in çalıştırılmasıyla ilişkili hesaplamaların izole edilmesi.

RenderingNG projesi tarafından uygulanan krom optimizasyon sonuçları

Uygulanan optimizasyon teknikleri:

  • Chrome 94, web sayfalarının ayrı ayrı oluşturulan bölümlerinin birleştirilmesine olanak tanıyan ve GPU üzerindeki yükü dinamik olarak ölçeklendirmenize olanak tanıyan CompositeAfterPaint mekanizmasını sunar. Kullanıcı telemetri verilerine göre, yeni birleştirme sistemi kaydırma gecikmesini %8 azalttı, kullanıcı deneyimi yanıt verme hızını %3 artırdı, işleme hızını %3 artırdı, GPU bellek tüketimini %3 azalttı ve pil ömrünü %0.5 artırdı.
  • GPU tarafında bir rasterleştirme motoru olan GPU Raster, 2020 yılında tüm platformlarda kullanıma sunuldu ve MotionMark kıyaslamalarını ortalama %37, HTML ile ilgili kıyaslamaları ise %150 hızlandırdı. Bu yıl, GPU Raster, Canvas öğelerini işlemek için GPU tarafı hızlandırmayı kullanma yeteneği ile geliştirildi ve bu da %1000 daha hızlı taslak oluşturma ve %1.2 daha hızlı MotionMark 130 kıyaslamaları sağladı.
  • LayoutNG, güvenilirliği ve öngörülebilirliği artırmayı amaçlayan sayfa öğesi düzeni algoritmalarının tamamen yeniden tasarlanmasıdır. Projenin bu yıl kullanıcılarla buluşturulması planlanıyor.
  • BlinkNG - Blink motorunun yeniden düzenlenmesi ve temizlenmesi, penceredeki nesnelerin görünürlüğünü dikkate alarak önbelleğe alma verimliliğini artırmak ve tembel oluşturmayı basitleştirmek için oluşturma işlemlerini ayrı ayrı yürütülen aşamalara böler. Çalışmanın bu yıl tamamlanması planlanıyor.
  • Kaydırma, animasyon ve görüntü kod çözme işleyicilerini ayrı iş parçacıklarına taşıma. Proje 2011'den bu yana geliştiriliyor ve bu yıl animasyonlu CSS dönüşümlerini ve SVG animasyonlarını ayrı iş parçacıklarına aktarma yeteneğine kavuştu.
  • VideoNG, web sayfalarında video oynatmak için etkili ve güvenilir bir motordur. Bu yıl, korumalı içeriği 4K çözünürlükte görüntüleme özelliği uygulamaya konuldu. HDR desteği daha önce eklenmişti.
  • Viz - tarayıcı arayüzünün oluşturulmasını sayfa içeriğinin oluşturulmasından ayıran rasterleştirme (OOP-R - İşlem Dışı Raster) ve oluşturma (OOP-D - İşlem dışı görüntü birleştirici) için ayrı işlemler. Proje aynı zamanda platforma özel grafik API'lerini (Vulkan, D3D12, Metal) kullanan SkiaRenderer sürecini de geliştiriyor. Değişiklik, grafik sürücülerindeki sorunlardan kaynaklanan çökme sayısının 6 kat azaltılmasını mümkün kıldı.

Kaynak: opennet.ru

Yorum ekle