Вынікі аптымізацыі Chromium, рэалізаваныя праектам RenderingNG

Распрацоўнікі Chromium падвялі першыя вынікі запушчанага 8 гадоў назад праекту RenderingNG, накіраванага на правядзенне сталай працы па павелічэнні прадукцыйнасці, надзейнасці і пашыральнасці Chrome.

Напрыклад, дададзеныя ў выпуску Chrome 94 аптымізацыі ў параўнанні з Chrome 93 дазволілі на 8% скараціць затрымкі пры апрацоўцы старонак і на 0.5% павялічыць час аўтаномнай працы ад акумулятара. З улікам памеру карыстацкай базы Chrome дадзеныя паказчыкі ў глабальным маштабе выяўляюцца ў эканоміі больш за 1400 гадоў працэсарнага часу кожны дзень. У параўнанні з версіям мінулых гадоў сучасны Chrome адмалёўвае графіку хутчэй больш за на 150% і 6 разоў менш схільны крахам у GPU-драйверах на праблемным абсталяванні.

Сярод рэалізаваных метадаў, якія дазваляюць дамагчыся прыросту прадукцыйнасці адзначана распаралельванне аперацый растэрызацыі розных пікселяў на боку GPU і больш актыўнае разнясенне апрацоўшчыкаў па розных ядрах CPU (выкананне JavaScript, апрацоўка пракруткі старонкі, дэкадаванне відэа і малюнкаў, папераджальная адмалёўка кантэнту). Які стрымлівае фактарам пры актыўным паралельванні з'яўляецца ўзрастанне нагрузкі на CPU, якая адлюстроўваецца ростам тэмпературы і падвышэннем энергаспажывання, таму важна дамагчыся аптымальнага балансу паміж прадукцыйнасцю і энергаспажываннем. Напрыклад, пры працы ад акумулятара можна ахвяраваць хуткасцю адмалёўкі, але нельга ахвяраваць апрацоўкай пракруткі ў асобным струмені, бо зніжэнне спагадлівасці інтэрфейсу стане прыкметна карыстачу.

Рэалізаваныя ў рамках праекта RenderingNG тэхналогіі цалкам мяняюць падыход да кампазітынгу і дазваляюць адаптыўна задзейнічаць розныя тэхналогіі аптымізацыі вылічэнняў на GPU і CPU у прывязцы да асобных частак старонак, улічваючы такія асаблівасці як дазвол і частата абнаўлення экрана, а таксама наяўнасць у сістэме падтрымкі прасунутых графічных API, такіх як Vulkan, D3D12 і Metal. У якасці прыкладаў аптымізацый згадваецца актыўнае выкарыстанне кэшавання тэкстур GPU і вынікаў адмалёўкі частак web-старонак, а таксама ўлік пры адмалёўцы толькі вобласці старонкі, бачнай карыстачу (няма сэнсу выконваць адмалёўку частак старонкі, перакрытых іншым змесцівам).

Важным элементам RenderingNG таксама з'яўляецца ізаляцыі прадукцыйнасці пры апрацоўцы розных частак старонак, напрыклад, для ізаляцыі вылічэнняў, звязаных паказам рэкламы ў блоках iframe, адлюстраваннем анімацыі, прайграваннем гуку і відэа, пракруткай змесціва і выкананнем JavaScript.

Вынікі аптымізацыі Chromium, рэалізаваныя праектам RenderingNG

Рэалізаваныя тэхнікі аптымізацыі:

  • У Chrome 94 прапанаваны механізм CompositeAfterPaint, які забяспечвае кампазітынг паасобна адмаляваных частак web-старонак і які дазваляе дынамічна маштабаваць нагрузку на GPU. У адпаведнасці з дадзенымі, атрыманымі ад карыстальнікаў у выніку збору тэлеметрыі, прымяненне новай сістэмы кампазітынгу дазволіла знізіць затрымкі пры пракрутцы на 8%, павысіць спагадлівасць узаемадзеяння з карыстальнікам на 3%, павялічыць хуткасць адмалёўкі на 3%, знізіць спажыванне памяці GPU на 3% і падоўжыць час аўтаномнай працы на 0.5%.
  • GPU Raster – механізм растэрызацыі на баку GPU, быў укаранёны для ўсіх платформаў у 2020 годзе і дазволіў паскорыць праходжанне тэстаў MotionMark у сярэднім на 37%, а катэгорый, звязаных з HTML, на 150%. У гэтым годзе GPU Raster быў дапоўнены магчымасцю выкарыстання паскарэння на баку GPU для адмалёўкі элементаў Canvas, што прывяло да паскарэння адмалёўкі контураў на 1000%, а праходжання тэстаў MotionMark 1.2 на 130%.
  • LayoutNG - поўная перапрацоўка алгарытмаў раскладкі элементаў старонак, накіраваная на павышэнне надзейнасці і прадказальнасці. Праект плануюць давесці да карыстальнікаў у гэтым годзе.
  • BlinkNG - рэфактарынг і чыстка рухавічка Blink з падзелам аперацый адмалёўкі ў асобна выкананыя фазы для павышэння эфектыўнасці кэшавання і спрашчэння адкладзенай адмалёўкі з улікам бачнасці аб'ектаў у акне. Работу плануецца завяршыць у гэтым годзе.
  • Вынас у асобныя патокі апрацоўшчыкаў пракруткі, анімацыі і дэкадавання малюнкаў. Праект развіваецца з 2011 года і ў гэтым годзе дасягнуў магчымасці вынасу ў асобныя патокі анімаваных CSS-трансфармацый і анімацыі SVG.
  • VideoNG - эфектыўны і надзейны рухавічок для прайгравання відэа на web-старонках. У гэтым годзе рэалізавана магчымасць адлюстравання абароненага кантэнту з дазволам 4K. Раней была дададзена падтрымка HDR.
  • Viz - асобныя працэсы для растэрызацыі (OOP-R - Out-of-process Raster) і адмалёўкі (OOP-D - Out of process display compositor), якія адлучаюць адмалёўку інтэрфейсу браўзэра ад адмалёўкі змесціва старонак. Праектам таксама развіваецца працэс SkiaRenderer, які выкарыстоўвае спецыфічныя для розных платформаў графічныя API (Vulkan, D3D12, Metal). Змена дазволіла ў 6 раз знізіць колькасць крахаў з-за праблем у графічных драйверах.

Крыніца: opennet.ru

Дадаць каментар