Szerző: Gálffy Csaba

2015. július 09. 11:41:00

Új JavaScript-fordítót kapott a Chrome

A Chrome 41-gyel új fordító is része lett a Google-féle V8 JavaScript-motornak. A TurboFan fokozatosan fogja lecserélni a veterán Crankshaftet, a váltást a JavaScript megváltozott szerepe indokolja. Az új kompiler már 64 bites gépi kódot is tud gyártani.

Új JavaScript-fordító mutatkozott be a Chrome 41-es kiadásában. A TurboFan névre keresztelt kompiler ugyanúgy JIT (just-in-time) rendszerű, mint az előző generációs Crankshaft, azonban annál gyorsabb, jobban optimalizált gépi kódot állít elő. A Google saját Octane teljesítménytesztjében a zlib tömörítés benchmark mintegy 29 százalékos gyorsulást mutat - a fordító által előállított, jobb minőségű kód tehát kézzelfogható eredményeket hoz.

Az új fordító amúgy vadonatúj fejlesztés, nem a Crankshaft eredményeire épít. Az új kódbázist az első pillanattól fogva úgy szervezték a fejlesztők, hogy a fordító fenntartása és továbbfejlesztése könnyebb legyen. Szintén fontos szempont volt, hogy a kódot a külső fejlesztők is könnyebben megértsék, így jobban hozzá tudnak járulni az eszköz fejlődéséhez. Ez fontos szempont, a Google Chrome és a kapcsolódó technológiák, mint a V8 JS-motor is nagyban támaszkodik külső fejlesztők hozzájárulásaira, a TurboFan az ő igényeiket jobban kiszolgálja majd a cég reményei szerint.

Machine learning és Scrum alapozó képzések indulnak! (x) A HWSW októberben induló gyakorlatorientált, 10 alkalmas, 30 órás online képzéseire most early bird kedvezménnyel lehet regisztrálni!

Az alapoktól újragondolt kompiler sokkal többféle kódot tud már optimalizálni, mint az elődje,  támogatja a rugalmas és dinamikus optimalizálási módokat is. A fejlesztők szerint a Crankshaft számára különösen problémásnak számító JavaScript-kódok, mint az asm.js, class literals, számított jellemzők és for-of ciklusok esetében is sokkal hatékonyabban tud optimalizálni a TurboFan. A gyorsulás egyelőre nem általános, ezért a TurboFan egyelőre nem váltja ki teljesen a Crankshaftet, de a középtávú cél egyértelműen a régi motor nyugdíjazása és az új eszköz alapértelmezett használata.

A Crankshaft egyébként nem mai gyerek, a fordítót még 2010-ben jelentette be a Google. Azóta a webes alkalmazások területe gyökeresen átalakult, és ezzel megváltozott az a JavaScript-kód is, amellyel a fordítók leggyakrabban találkoznak. Ha ehhez hozzávesszük, hogy maga a JavaScript is átalakult (lásd ECMAScript 6), akkor összegeztük azokat az érveket, amelyek miatt a Google inkább úgy döntött, hogy egy teljesen új fordítót készít.

A TurboFan először 2014 augusztusában jelent meg a Chromium forráskód-kezelőjében, rögtön 72 ezer sornyi kóddal - és ahogy említettük, ebből semmi nem közös a Crankshafttel. A TurboFan egyik jellegzetessége amúgy, hogy képes mind x86-on, mind ARM architektúrán 64 bites kódot előállítani, erre tudomásunk szerint a Crankshaft nem képes és a funkciót várhatóan nem is fogja visszaportolni a Google.

A keresőóriás ígérete szerint a magasabb teljesítmény kiaknázásához a webes fejlesztőknek semmit sem kell tenniük, a motor saját hatáskörben intézkedik az optimális végrehajtásról.

a címlapról