Mozilla blog: gyorsabb JavaScript-futtatás és pdf-megjelenítő

Már letölthető a Firefox új béta változata, amely a motorháztető alatt szélsebes JavaScript feldolgozót kapott. Az IonMonkey elnevezésű JIT JavaScript-fordító újdonsága, hogy az eddigi fordítókkal – a TraceMonkey-val és az újabb JägerMonkey-val – ellentétben nem szinte azonnal állít elő gépi kódot a JavaScript-kódból, hanem egy köztes kódot (Intermediate Representation – IR) készít. Ezek után a fordító optimalizálja az elkészült köztes kódot, majd ezt a kódot fordítja le gépi kódra. Ezzel az eljárással a fordítónak sokkal nagyobb mozgástere van az elkészült kód optimalizálására. Az egy éve tartó fejlesztés eredménye nem csak egy gyorsabb fordító és könnyebben karbantartható kód, hanem a lehetőség, amely felgyorsítja majd a jövőbeni fejlesztéseket is. Most már könnyedén lehet új algoritmusokat beilleszteni a végrehajtási sorba és megvizsgálni a változtatás eredményét.

Hirdetés

Teljesítmény szempontjából az új fordító meggyőzően teljesít. Ráadásul továbbra is lehetőség van visszatérni a JägerMonkey motorra, ha éppen a pillanatnyi feldolgozás miatt az bizonyul optimális választásnak. Az egyik fejlesztő, David Anderson által Windows 7 operációs rendszert futtató Mac Prón végzett mérés szerint a Kraken-tesztben 26%-os gyorsulás mutatható ki, a most megjelent végleges verzióhoz képest.

Firefox

A Google-féle V8-tesztben 7% gyorsulás mutatható ki az előző verzióhoz képest, míg a három hónappal ezelőtt debütált verzióhoz képest 20%-al több pontot produkál az új fordító.

Firefox

Az elkövetkező hónapokban a fordító további fejlesztése, finomhangolása várható, és ezzel a teljesítménye is tovább növekszik majd. A fordító a következő technológiákat alkalmazza:

  • Loop-Invariant Code Motion (LICM) – parancsok kimozgatása a ciklusokból, ha az lehetséges
  • Sparse Global Value Numbering (GVN) – ismétlődő kódok eltávolítása
  • Linear Scan Register Allocation (LSRA) – regiszterfoglalási eljárás, amelyet a HotSpot JVM alkalmaz (és a legutóbbi időkig az LLVM is)
  • Dead Code Elimination (DCE) – nem használt parancsok eltávolítása
  • Range Analysis – határérték-analízis (engedélyezhető a 765119-es hibajegy javítását követően)

További újdonságok:

  • a WebRTC támogatásának bevezetése
  • jobb képminőség a HTML-átméretezés használata során
  • lapváltás gyorsítása
  • a felhasználói beállításoktól függően a HTTPS oldalakon elhelyezkedő nem biztonságos elemek betöltésének tiltása (62178)
  • finomabb működés a proxyt használó felhasználók számára (769764)
  • integrált pdf-megjelenítő engedélyezése
  • Mac OS X 10.7 vagy újabb rendszer esetén a Retina kijelzőn jobb megjelenés

Újdonságok a fejlesztők számára:

  • CSS3 Flexbox implementálása
  • új DOM-tulajdonság támogatása: window.devicePixelRatio
  • @supports támogatás bevezetése
  • gyorsabb indulás az aláírt kiterjesztések tanúsítványainak okosabb kezelése által
  • támogatás a W3C érintőképernyős eseményeinek alkalmazása a MozTouch események helyett

A fenti újdonságokból kettőt emelnék ki:

Pdf-megjelenítő: néhány Firefox verzióval ezelőtt a pdf-megjelenítés képességével gazdagodott a Firefox. A megjelenítő lelke a pdf.js, amely JavaScript segítségével képzi le HTML/CSS tartalommá a megjelenítendő pdf állományokat. Ez a funkció azonban le volt tiltva a megelőző verziókban. Az új Firefox bétában már alapértelmezetten be van kapcsolva. A béta-verzió telepítése mellett másik lehetőség is van a funkció kipróbálására. Írjuk be a címsorba: „about:config” és adjunk a „pdfjs.disabled” kulcsnak „false” értéket.

WebRTC: a WebRTC API használatával a böngésző felhasználóinak lehetősége nyílik a az egymás közötti, valósidejű hang- és videóbeszélgetés és peer-to-peer alapú fájlátvitel lebonyolítására külön bővítmény használata nélkül. A JavaScriptból elérhető API a HTML5 hang- és videóeszközeit használja fel a feladat megoldására. A 2011-ben megkezdett szabványosítási folyamat részeként a Mozilla, az Opera, és a Chrome is támogatja ezt a VP8 kodeket is felhasználó szabványtervezetet, míg a rivális Microsoft saját tervezettel kívánja megvetni a lábát a böngészőbe integrált üzenetküldő szolgáltatások területén. A WebRTC részleteiről a World Wide Web Consortium (W3C) ajánlásában lehet olvasni.

Azóta történt

Előzmények