:

Szerző: Gálffy Csaba

2014. február 14. 14:46

Külön szálat kap a Chrome JavaScript-fordítója

A Chrome legújabb, egyelőre béta állapotú kiadása fontos újdonságot hoz a motorháztető alatt: a V8 JavaScript-motor immár külön szálon végzi a kód optimalizálását és végrehajtását, így a két feladat nem akasztja meg kölcsönösen egymást. Az eredmény: kevesebb fennakadással futó weboldalak.

A Chrome JavaScript-motorja, a V8 just-in-time (JIT) fordítót használ, vagyis a függvényekből csak közvetlenül első meghívásuk előtt készít gépi kódot, majd lefuttatja azt. Az első lépésben ezért egy gyors fordító dolgozik, amely viszonylag lassú gépi kódot generál a JavaScriptből, azt azonban villámgyorsan teszi. A következő lépcsőben a sűrűn használt függvények és kódrészletek további optimalizációt kapnak, ennek eredménye villámgyorsan végrehajtható alkalmazás lesz, az optimalizált újrafordítás azonban nagyon időigényes.

Jelenleg...

A problémát az okozza, hogy a V8 jelenlegi változata a JavaScript-motor fő szálán végzi a fordítást és a végrehajtást is. A gyakorlatban ez azt jelenti, hogy az optimalizáló fordítás idejére az alkalmazás futását felfüggeszti, ami a felhasználó számára jól érzékelhető fennakadást jelent a weboldal működésében. A Google által hozott példa az Octane benchmark Mandreel tesztje, ebben az optimalizáló fordítás akár 6 tizedmásodpeces akadást is összehozhat, míg a bonyolult programból hatékony gépi kód keletkezik.

Az új fejlesztésnek köszönhetően az optimalizáló fordítás külön, háttérben futó (alacsonyabb prioritású) programszálat kap, amely többmagos processzorokon akár külön magon is futhat. Az eredmény, hogy a két feladat immár futhat párhuzamosan, a JavaScript futása pedig sokkal folyamatosabbá válik ennek következtében. A fejlesztés a benchmarkokban is érezhető gyorsulást hoz, a már említett Mandreel tesztben például 27 százalékkal magasabb a mért teljesítmény azonos hardveren (Nexus 5).

...és hamarosan.

Nyerd meg az 5 darab, 1000 eurós Craft konferenciajegy egyikét!

A kétnapos, nemzetközi fejlesztői konferencia apropójából a HWSW kraftie nyereményjátékot indít.

Nyerd meg az 5 darab, 1000 eurós Craft konferenciajegy egyikét! A kétnapos, nemzetközi fejlesztői konferencia apropójából a HWSW kraftie nyereményjátékot indít.

A képen egyébként látható, hogy a kódoptimalizáció és maga a futtatás szinte ugyanannyi számítási kapacitást emészt fel a futás első néhány másodpercében. Az első 4500 ezredmásodpercben az optimalizáló fordító az idő 40 százalékát emészti fel, a futtatásra (az egyéb feladatok miatt) pedig csak 48 százalék jut. A leválasztott fordítóval a futtatás részaránya 74 százalékra tud emelkedni, a fő szálon futó fordítás pedig 14,5 százalékra zsugorodik. Ennél is fontosabb azonban a felhasználó szempontjából, hogy a drámai, több, mint fél másodperces szünet teljesen eltűnik, a legnagyobb akadás hossza mintegy 100 ezredmásodpercre csökken.

A JavaScript sebessége az elmúlt években látványosat lépett előre, a különböző böngészőgyártók motorjai pedig újabb és újabb innovációkkal gyorsítják az alkalmazások futását. Ennek köszönhetően az asztali gépeken már a natív alkalmazásokhoz mérhető felhasználói élményt nyújtanak a webes alkalmazások. A mobileszközök szerény sebességű processzorai számára azonban a komplex webes alkalmazások ma is nagy terhet jelentenek, így a fejlesztések legújabb célpontját már a telefonokra és tabletekre történő optimalizáció jelenti.

Milyen technológiai és munkaerőpiaci hatások érhetik a backendes szakmát? Május 8-án végre elindul az idei kraftie! meetup-sorozat is (helyszíni vagy online részvétellel).

a címlapról

Hirdetés

Security témákkal folyatódik az AWS hazai online meetup-sorozata!

2024. április 26. 03:03

A sorozat május 28-i, harmadik állomásán az AWS-ben biztonsági megoldásait vesszük nagyító alá. Átnézzük a teljes AWS security portfóliót a konténerbiztonságtól a gépi tanulásos alkalmazások védelmén át, egészen az incidenskezelésig.