neprihlásený Piatok, 18. októbra 2024, dnes má meniny Lukáš
Firefox mnohonásobne zrýchlil spúšťanie WebAssembly kódu

Značky: Firefox

DSL.sk, 18.10.2024


Spoločnosť Mozilla dosiahla vo svojom webovom prehliadači Firefox mnohonásobné zrýchlenie počiatočného spúšťania komplikovanejšieho kódu vo WebAssembly, čo výrazne zlepšuje používanie webových aplikácií s takýmto kódom.

Mozilla o zlepšení informuje v tomto popise.

WebAssembly respektíve Wasm je portovateľný binárny kód pre písanie programov podporovaný webovými prehliadačmi, ktorého cieľom je umožniť programovať efektívne výkonné webové aplikácie.

Firefox mal doteraz problém s pomalým spustením veľmi veľkých Wasm modulov, keď pri spustení prehliadač dlho vyťažuje CPU a má veľkú spotrebu pamäte. Spoločnosť to zaregistrovala v septembri pri spúšťaní ONNX Runtimu od Microsoftu.

Firefox pre efektívne spúšťanie prekladá WebAssembly kód na natívny strojový kód. Najskôr použije preklad pomocou kompilátora Wasm Baseline, ktorý je rýchly ale nevytvára najkvalitnejší kód. Firefox môže následne začať WebAssembly kód vykonávať, zároveň ho ale skompiluje ešte na výrazne efektívnejší pomocou kompilátora Ion.

Problém bol s touto kompiláciou, ktorá v prípade ONNX zaťažovala CPU približne 5 minút a spotrebovávala viac ako 4 GB pamäte. Príčinou boli neefektívne dátové štruktúry a algoritmy s kvadratickou časovou zložitosťou, čo sa výrazne prejavovalo pri kompilácii veľkých Wasm modulov.

Po optimalizovaní bolo pri veľkom ONNX module dosiahnuté zrýchlenie kompilovania 75-násobne na 3.9 sekundy. Celkovú spotrebu pamäte popis neuvádza, spomína ale ušetrenie minimálne 3 GB.

Optimalizácia samozrejme výrazne zrýchľuje počiatočné spúšťanie aj iných veľkých Wasm modulov, napríklad kompilácia modulu v online deme Adobe Photoshopu zrýchlila zo 4 minút na 14 sekúnd. Zlepšenie neznamená následný rýchlejší beh kódu vo Wasm, znamená iba výrazne menšie zaťaženie CPU pri počiatočnom spúšťaní a vďaka skoršej dostupnosti efektívnejšieho natívneho kódu dosiahnutie vyššieho výkonu Wasm kódu skôr po spustení.

Mozilla podľa popisu pripravuje aj ďalšiu významnú optimalizáciu. V súčasnosti sa pomocou Ion kompilátora kompiluje naraz celý Wasm modul, pričom čakať napríklad 14 sekúnd na efektívne spustenie Adobe Photoshopu je pomerne dlhá doba. Mozilla tak pripravuje kompilovanie Wasm kódu postupne po funkciách.

Ani už uskutočnená optimalizácia zatiaľ nie je súčasťou stabilnej verzie Firefoxu a Mozilla v popise neinformuje, v ktorej verzii respektíve kedy má byť pridaná.


      Zdieľaj na Twitteri



Najnovšie články:

Vedci sa pokúsili nájsť bežný mimozemský signál zaujímavou metódou, nič nenašli
O päť rokov má byť 40% notebookov architektúry ARM
Nový štandard bude umožňovať medzi zariadeniami bezpečne prenášať passkeys
Najnovší Windows 11 padá s BSoD na PC s SSD od Western Digital, k dispozícii nový firmvér
SpaceX chce posunúť Starlink satelity o 50 km nižšie, sľubuje gigabitové rýchlosti
Android 15 sprístupnený pre smartfóny Google Pixel
Intel a AMD idú spolupracovať na budúcnosti architektúry x86
K dispozícii testovacia verzia Ubuntu 24.10 pre ARM notebooky so Snapdragonmi X
Western Digital zvýšil počet platní HDD na 11, uviedol 26 TB a 32 TB modely
Po raste majú ceny SSD zase klesnúť


Diskusia:
                               
 

Optimalizácia WebAssembly je fajn. Ale písať cele aplikácie d JS a dávať ich do browsra je ako škrabanie sa cez opačnú stranu hlavy. Pritom stačí písať kvalitné C++/Rust aplikácie.
Odpovedať Známka: 6.0 Hodnotiť:
 

WebAssembly ti pojde aj na mobile cez hociaky WebView ktory to zaobali, C++/Rust aplikacia nie.
Odpovedať Známka: 3.3 Hodnotiť:
 

čo konkrétne si môžem predstaviť pod zložitou webovou aplikáciou napísanou vo Wasm, ktorú je potrebné obsluhovať cez mobil?
Odpovedať Hodnotiť:

Pridať komentár