Keputusan pengoptimuman kromium yang dilaksanakan oleh projek RenderingNG

Pembangun Chromium telah merumuskan hasil pertama projek RenderingNG, yang dilancarkan 8 tahun lalu, bertujuan untuk kerja berterusan untuk meningkatkan prestasi, kebolehpercayaan dan kebolehlanjutan Chrome.

Contohnya, pengoptimuman yang ditambahkan dalam Chrome 94 berbanding Chrome 93 menghasilkan pengurangan 8% dalam kependaman pemaparan halaman dan peningkatan 0.5% dalam hayat bateri. Berdasarkan saiz pangkalan pengguna Chrome, ini mewakili penjimatan global melebihi 1400 tahun masa CPU setiap hari. Berbanding dengan versi sebelumnya, Chrome moden memaparkan grafik lebih daripada 150% lebih pantas dan 6 kali kurang terdedah kepada ranap pemacu GPU pada perkakasan yang bermasalah.

Antara kaedah yang dilaksanakan untuk mencapai peningkatan prestasi, kami mencatatkan penyelarasan operasi rasterisasi piksel berbeza pada bahagian GPU dan pengedaran pemproses yang lebih aktif merentas teras CPU yang berbeza (melaksanakan JavaScript, menatal halaman pemprosesan, menyahkod video dan imej, pemaparan proaktif bagi kandungan). Faktor pengehad untuk penyejajaran aktif ialah peningkatan beban pada CPU, yang dicerminkan oleh peningkatan suhu dan peningkatan penggunaan kuasa, jadi adalah penting untuk mencapai keseimbangan optimum antara prestasi dan penggunaan kuasa. Sebagai contoh, apabila menggunakan kuasa bateri, anda boleh mengorbankan kelajuan pemaparan, tetapi anda tidak boleh mengorbankan pemprosesan tatal dalam utas yang berasingan, kerana penurunan responsif antara muka akan dapat dilihat oleh pengguna.

Teknologi yang dilaksanakan dalam rangka projek RenderingNG mengubah sepenuhnya pendekatan untuk penggubahan dan membolehkan anda menyesuaikan diri menggunakan teknologi yang berbeza untuk mengoptimumkan pengiraan pada GPU dan CPU berhubung dengan bahagian individu halaman, dengan mengambil kira ciri seperti resolusi skrin dan kadar penyegaran , serta kehadiran dalam sistem sokongan untuk API grafik lanjutan, seperti Vulkan, D3D12 dan Metal. Contoh pengoptimuman termasuk penggunaan aktif caching tekstur GPU dan hasil pemaparan bahagian halaman web, serta mengambil kira hanya kawasan halaman yang boleh dilihat oleh pengguna semasa pemaparan (tiada gunanya memaparkan bahagian halaman yang diliputi oleh kandungan lain).

Elemen penting RenderingNG juga adalah untuk mengasingkan prestasi semasa memproses bahagian halaman yang berbeza, contohnya, untuk mengasingkan pengiraan yang dikaitkan dengan penyajian iklan dalam iframe, memaparkan animasi, memainkan audio dan video, menatal kandungan dan melaksanakan JavaScript.

Keputusan pengoptimuman kromium yang dilaksanakan oleh projek RenderingNG

Teknik pengoptimuman yang dilaksanakan:

  • Chrome 94 menawarkan mekanisme CompositeAfterPaint, yang menyediakan penggubahan bahagian halaman web yang dipaparkan secara berasingan dan membolehkan anda menskalakan beban pada GPU secara dinamik. Menurut data telemetri pengguna, sistem penggubahan baharu mengurangkan kependaman skrol sebanyak 8%, meningkatkan responsif pengalaman pengguna sebanyak 3%, meningkatkan kelajuan pemaparan sebanyak 3%, mengurangkan penggunaan memori GPU sebanyak 3% dan memanjangkan hayat bateri sebanyak 0.5%.
  • GPU Raster, enjin rasterisasi sisi GPU, telah diperkenalkan merentas semua platform pada tahun 2020 dan telah mempercepatkan penanda aras MotionMark dengan purata 37% dan penanda aras berkaitan HTML sebanyak 150%. Tahun ini, GPU Raster telah dipertingkatkan dengan keupayaan untuk menggunakan pecutan sisi GPU untuk memaparkan elemen Kanvas, menghasilkan pemaparan garis besar 1000% lebih pantas dan penanda aras MotionMark 1.2 130% lebih pantas.
  • LayoutNG ialah reka bentuk semula lengkap algoritma susun atur elemen halaman yang bertujuan untuk meningkatkan kebolehpercayaan dan kebolehramalan. Projek itu dirancang untuk dibawa kepada pengguna pada tahun ini.
  • BlinkNG - pemfaktoran semula dan pembersihan enjin Blink, membahagikan operasi pemaparan kepada fasa yang dilaksanakan secara berasingan untuk meningkatkan kecekapan caching dan memudahkan pemaparan malas, dengan mengambil kira keterlihatan objek dalam tetingkap. Kerja-kerja itu dijadualkan siap tahun ini.
  • Mengalihkan pengendali penatalan, animasi dan penyahkod imej ke urutan yang berasingan. Projek ini telah dibangunkan sejak 2011 dan tahun ini ia mencapai keupayaan untuk mengeksport transformasi CSS animasi dan animasi SVG ke benang yang berasingan.
  • VideoNG ialah enjin yang cekap dan boleh dipercayai untuk memainkan video pada halaman web. Tahun ini, keupayaan untuk memaparkan kandungan yang dilindungi dalam resolusi 4K telah dilaksanakan. Sokongan HDR telah ditambahkan sebelum ini.
  • Viz - proses berasingan untuk rasterisasi (OOP-R - Raster Tidak Diproses) dan pemaparan (OOP-D - Penggubah paparan di luar proses), memisahkan pemaparan antara muka penyemak imbas daripada pemaparan kandungan halaman. Projek ini juga sedang membangunkan proses SkiaRenderer, yang menggunakan API grafik khusus platform (Vulkan, D3D12, Metal). Perubahan itu memungkinkan untuk mengurangkan bilangan ranap akibat masalah dalam pemacu grafik sebanyak 6 kali.

Sumber: opennet.ru

Tambah komen