Hasil optimasi Chromium yang diterapkan oleh proyek RenderingNG

Pengembang Chromium telah merangkum hasil pertama proyek RenderingNG, yang diluncurkan 8 tahun lalu, yang bertujuan untuk meningkatkan kinerja, keandalan, dan ekstensibilitas Chrome.

Misalnya, pengoptimalan yang ditambahkan di Chrome 94 dibandingkan dengan Chrome 93 menghasilkan pengurangan latensi rendering halaman sebesar 8% dan peningkatan masa pakai baterai sebesar 0.5%. Berdasarkan ukuran basis pengguna Chrome, hal ini menunjukkan penghematan global waktu CPU selama lebih dari 1400 tahun setiap harinya. Dibandingkan dengan versi sebelumnya, Chrome modern merender grafis 150% lebih cepat dan 6 kali lebih kecil kemungkinannya terhadap kerusakan driver GPU pada perangkat keras yang bermasalah.

Di antara metode yang diterapkan untuk mencapai peningkatan kinerja, kami mencatat paralelisasi operasi rasterisasi piksel yang berbeda di sisi GPU dan distribusi prosesor yang lebih aktif ke inti CPU yang berbeda (menjalankan JavaScript, memproses pengguliran halaman, mendekode video dan gambar, rendering proaktif dari isi). Faktor pembatas paralelisasi aktif adalah meningkatnya beban pada CPU, yang tercermin dari kenaikan suhu dan peningkatan konsumsi daya, sehingga penting untuk mencapai keseimbangan optimal antara kinerja dan konsumsi daya. Misalnya, saat menggunakan daya baterai, Anda dapat mengorbankan kecepatan rendering, tetapi Anda tidak dapat mengorbankan pemrosesan pengguliran di thread terpisah, karena penurunan respons antarmuka akan terlihat oleh pengguna.

Teknologi yang diterapkan dalam kerangka proyek RenderingNG sepenuhnya mengubah pendekatan pengomposisian dan memungkinkan Anda untuk secara adaptif menggunakan berbagai teknologi untuk mengoptimalkan perhitungan pada GPU dan CPU sehubungan dengan bagian halaman individual, dengan mempertimbangkan fitur-fitur seperti resolusi layar dan kecepatan refresh. , serta hadirnya sistem dukungan untuk API grafis tingkat lanjut, seperti Vulkan, D3D12 dan Metal. Contoh pengoptimalan termasuk penggunaan aktif caching tekstur GPU dan hasil rendering bagian halaman web, serta hanya memperhitungkan area halaman yang terlihat oleh pengguna saat rendering (tidak ada gunanya merender bagian dari halaman web). halaman yang dicakup oleh konten lain).

Elemen penting dari RenderingNG juga untuk mengisolasi kinerja saat memproses bagian halaman yang berbeda, misalnya, untuk mengisolasi komputasi yang terkait dengan penayangan iklan di iframe, menampilkan animasi, memutar audio dan video, menggulir konten, dan menjalankan JavaScript.

Hasil optimasi Chromium yang diterapkan oleh proyek RenderingNG

Teknik optimasi yang diterapkan:

  • Chrome 94 menawarkan mekanisme CompositeAfterPaint, yang menyediakan pengomposisian bagian halaman web yang dirender secara terpisah dan memungkinkan Anda menskalakan beban pada GPU secara dinamis. Menurut data telemetri pengguna, sistem pengomposisian baru mengurangi latensi gulir sebesar 8%, meningkatkan responsivitas pengalaman pengguna sebesar 3%, meningkatkan kecepatan rendering sebesar 3%, mengurangi konsumsi memori GPU sebesar 3%, dan memperpanjang masa pakai baterai sebesar 0.5%.
  • GPU Raster, mesin rasterisasi sisi GPU, diperkenalkan di semua platform pada tahun 2020 dan telah mempercepat benchmark MotionMark rata-rata sebesar 37% dan benchmark terkait HTML sebesar 150%. Tahun ini, GPU Raster ditingkatkan dengan kemampuan menggunakan akselerasi sisi GPU untuk merender elemen Canvas, sehingga menghasilkan rendering outline 1000% lebih cepat dan benchmark MotionMark 1.2 130% lebih cepat.
  • LayoutNG adalah desain ulang lengkap algoritma tata letak elemen halaman yang bertujuan untuk meningkatkan keandalan dan prediktabilitas. Proyek tersebut rencananya akan dihadirkan kepada pengguna pada tahun ini.
  • BlinkNG - pemfaktoran ulang dan pembersihan mesin Blink, membagi operasi rendering menjadi beberapa fase yang dijalankan secara terpisah untuk meningkatkan efisiensi caching dan menyederhanakan rendering lambat, dengan mempertimbangkan visibilitas objek di jendela. Pengerjaannya dijadwalkan selesai tahun ini.
  • Memindahkan pengendali pengguliran, animasi, dan decoding gambar ke thread terpisah. Proyek ini telah berkembang sejak 2011 dan tahun ini mencapai kemampuan untuk mengekspor transformasi CSS animasi dan animasi SVG ke thread terpisah.
  • VideoNG adalah mesin yang efisien dan andal untuk memutar video di halaman web. Tahun ini, kemampuan untuk menampilkan konten yang dilindungi dalam resolusi 4K telah diterapkan. Dukungan HDR sebelumnya telah ditambahkan.
  • Yaitu - proses terpisah untuk rasterisasi (OOP-R - Raster Di Luar Proses) dan rendering (OOP-D - Kompositor tampilan di luar proses), memisahkan rendering antarmuka browser dari rendering konten halaman. Proyek ini juga mengembangkan proses SkiaRenderer, yang menggunakan API grafis khusus platform (Vulkan, D3D12, Metal). Perubahan tersebut memungkinkan pengurangan jumlah crash akibat masalah pada driver grafis sebanyak 6 kali lipat.

Sumber: opennet.ru

Tambah komentar