neprihlásený Piatok, 22. novembra 2024, dnes má meniny Cecília
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:

Apple má prvýkrát použiť vlastný 5G modem v iPhone v marci
Linux dostáva podporu veľkokapacitných pamäťových SDUC kariet
USA požadujú, aby Google predal Chrome a potenciálne aj Android
ISS zvýšila orbitu, aby sa vyhla troskám zo satelitu
Vzniknú fyzické zábavné tematické Minecraft parky
Qualcomm chystá Snapdragon CPU pre lacnejšie PC, majú začínať na 600 dolárov
SpaceX nezachytávala prvý stupeň Starship kvôli problému na štartovacej veži
Sprístupnená prvá testovacia verzia už Androidu 16
Starship má dnes uskutočniť ďalší let, video
Google chce údajne na notebooky nasadiť Android namiesto ChromeOS


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: 2.7 Hodnotiť:
 

WebAssembly ti pojde aj na mobile cez hociaky WebView ktory to zaobali, C++/Rust aplikacia nie.
Odpovedať Známka: 8.0 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ť Známka: 5.0 Hodnotiť:
 

A čo konkrétne si môžeš predstaviť? Postni link na notársky overený zoznam, aby bolo garantované, že sa dá zakrúžkovať priekazne zrozumiteľná odpoveď.
Odpovedať Známka: 0.0 Hodnotiť:
 

Nemusi to byt nic zlozite, WASM nema so zlozitostou nic. Vela veci, ktore sa ale kompiluju do JS maju ako jeden z targetov aj WASM, preto je dobre ze to vylepsuju.
Odpovedať Hodnotiť:
 

ak to teda nie je zložité, prečo teda nie je optimálnejšie riešenie napísať to rovno v čistom JS?
Odpovedať Hodnotiť:
 

To co su za prijebane otazky ? To sa mam zakazdym obmedzovat len na JS ? Naco hento, naco tamto… vsak je dobre ze svet ponuka tolko moznosti.
Odpovedať Známka: 2.0 Hodnotiť:
 

ďakujem za objasnenie, už to chápem, je to obmedzovanie sa na tvojej úrovni, tzn. chceš písať jednoduchšie aj napriek tomu že vo výsledku sa ten tvoj kód aj tak musí skompilovať do toho "obmedzeného JS". Môj pohľad je taký, že ak niečo píšem priamo v čistom JS, je to optimalizovanejšie ako nejaký prekompilovaný kód z iného jazyka
Odpovedať Hodnotiť:
 

Tak pis rovno v ASM, lepsie to bude optimalizovane.
Odpovedať Známka: 10.0 Hodnotiť:
 

V strojáku.
Odpovedať Hodnotiť:
 

A komu to treba?
Odpovedať Známka: 5.0 Hodnotiť:
 

toto je presne nieco co mam vypunte a zapnut to neplanujem.
wasm smrdi este viac nez js.
Odpovedať Hodnotiť:
 

Ta uz je mrtva?
Odpovedať Známka: 0.0 Hodnotiť:
 

Všichni jsou mrtví, Dejve.
Odpovedať Známka: 5.0 Hodnotiť:
 

knock, knock..
Odpovedať Hodnotiť:
 

Lyska!
lystiycky!
Odpovedať Známka: -5.0 Hodnotiť:
 

V Borovciach je rozbita cesta bo tam robia kanaly.
Odpovedať Známka: -3.3 Hodnotiť:
 

Pripomenulo mi to filtracnu funkciu nad par GB textovym suborom, ktory kolega senior programator natukal a trvala 4 hodiny... co ma dostalo do kolien a ja ako admin som teda spravil novy skript, ktory to iste urobil za cca 10 sekund, t.j. limitovane to bolo hlavne rychlostou diskov.
Cely rozdiel bol, ze moje riesenie pouzivalo viacnasobne parsovanie nad celou mnozinou a jeho vykonavalo filtrovanie celoskupinovo nad davkami.
Odpovedať Známka: -3.3 Hodnotiť:
 

Mne to pripomenulo, ze ak niekto napise ze jeho algoritmus je 1500x rychlejsi a popisuje ho slovickom viacnasobne, ze asi zle vidim. Ak ale senior urobil svoj kus kodu vo vba a vlozil tam deay, dal to mlademu urobit znovu v pascale, urcite mu zlepsil sebavedomie a mlady to nevzdal do mesiaca.
Odpovedať Známka: 10.0 Hodnotiť:

Pridať komentár