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.

Toxikus vezetők szivárványa

Az IT munkakörülményeket, a munkahelyi kultúrát alapjaiban határozzák meg a vezetők, főleg ha még toxikusak is.

Toxikus vezetők szivárványa Az IT munkakörülményeket, a munkahelyi kultúrát alapjaiban határozzák meg a vezetők, főleg ha még toxikusak is.

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.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról