Magyar Opera

Operások írták - Carakan újratöltve

A nemrég megjelent Opera 10.5 pre-alfa verziójának sztárja egyértelműen az új, Carakan névre hallgató JavaScript motor volt. Úgy gondolom, hogy a fejlesztőik megérdemelnek annyit, hogy teljesítményüket bemutathassák, és azt mindenki megismerhesse. Át is adnám nekik a szót...

Ez a bejegyzés a "Carakan Revisited" című cikk fordítása. Az eredeti cikk 2009. december 22-én jelent meg a Core blogon.

Kicsi több mint egy év telt el azóta hogy elindítottuk a Carakan-projektet, ami az Opera ECMAScript végrehajtási sebességének drasztikus növelését célozta, és most jött el az első fejlesztői kiadás ideje.

Amit bő egy éve elkezdtünk implementálni, az - ahogy azt már a Carakanról szóló korábbi bejegyzésemben is írtam - egy új keresztplatform bájtkód-értelmező az új, regiszter alapú utasításkészlethez, egy új belső objektummodell automatikus osztályozással és belső tulajdonság-gyorsítótárral, és egy gépi kód generáló. És mi mindezt elkészítettük, sőt, ennél többet is.

Az új bájtkód-értelmező és az új objektummodell keresztplatform fejlesztés, ami azt jelenti, hogy minden hardveres platformon működik, amire az Operát átültetjük. Ezek önmagukban is jelentős teljesítmény-növekedést jelentenek a korábbi Futhark motorhoz viszonyítva, amiket a jelenlegi Operákban alkalmazunk.

Egy átlagos asztali gépen a Carakan bájtkód-értelmezője a SunSpider teszten körülbelül három és félszer gyorsabb, mint a Futharké, és korai tesztjeink az ennél kisebb teljesítményű processzorokkal üzemelő beágyazott rendszerek esetében még nagyobb előnyt mutatnak a Carakan javára.

Az optimális sebesség elérésére azonban a gépi kód generálás (másképpen JIT - Just In Time, [azaz futásidejű generálás]) a helyes megközelítés, és erre összpontosítottuk az optimalizációs munka nagy részét is.

A Carakant felszereltük egy forrópont (hot-spot) detektáló JIT fordítóval, ami olyan gépi kódot fordít, ami a legkomplexebbek kivételével minden utasítást képes végrehajtani a bájtkód-értelmező meghívása nélkül. Ez a technika ötvözi a kód fordítás-időbeli (compile-time) statikus analízisét és a bájtkód-motor futásidejű állítását az optimális bájtkód generálása érdekében, különös tekintettel az aritmetikai számításokra.

A motor funkció-beágyazásokat is végez (function inlining), mind a beépített funkciók (például Math.sqrt() négyzetgyök-vonáshoz), mind programozó által készített funkciók esetén. A JIT fordító jelenleg csak 32 illetve 64 bites x86-os gépi kódot generál, de idővel további architektúrákat is támogatni fog, az ARM-al kezdve a sort.

Tovább...

Áldott karácsonyi ünnepeket!

A teljes "szerkesztői stáb" nevében ezúton szeretnék minden kedves Olvasónknak áldott, békés, boldog Karácsonyt kívánni!

Karakán belépő

Bizonyára már sokan értesültetek arról, hogy ma jelent meg az Opera következő generációjának, a 10.5-nek első, pre-alfa előzetese. Ez számos kisebb-nagyobb változtatást hozott magával, mind a felhasználói felületet, mind a renderelő motort illetően, részleteiben lásd korábbi bemutató cikkünket.

Először is itt van, ugye, a Presto 2.5.18, ami sok új CSS3 elemet támogat a korábbi változathoz képest. Ennek része a megújult Vega vektorgrafikus könyvtár, ami a honlapok mellett a böngészőablak renderelését is átvette. Még egyelőre csak az erősen optimalizált szoftveres verzió érhető el, de már úton van a hardveresen megtámogatott változat is, ami további jelentős gyorsulást ígér.

A teszteket a saját gépemen végeztem, ami egy AMD X2 6000+, 3GB RAM társaságában. Operációs rendszerként a Windows Vista 64 bites Home Premium verziója teljesített szolgálatot.

Végül, de nem utolsó sorban elérhetővé tették a Carakan nevű, régóta ígért JavaScript (ECMAScript) motort, amitől mindenki az Opera ezen a téren felhalmozott tetemes hátrányának csökkentését várta. Vagy még többet. Mostani cikkünkben arra keressük a választ, hogy mennyire sikerült elérni a célkitűzésüket, azaz mennyi az az annyi.

Ennek érdekében egy baráti tesztsorozatra invitáltam a nálam fellelhető böngészőket, hogy összemérjék erejüket az új jövevénnyel. Elsősorban arra voltam kíváncsi, hogy a Carakan teljesítménye miképp viszonyul elődjéhez, a Futharkhoz, és természetesen arra is, hogy hogyan boldogul a JavaScript jelenlegi koronázatlan királyával, a Chrome-mal.

A tesztekben részt vevő böngészők névsora: Opera 10.10.1893, Opera 10.50.3172, Firefox 3.5.6, Firefox 3.6b5, Chrome 4.0.266.0, Safari 4.0.4 és Internet Explorer 8.0.6001.18865

Hogy kiderülhessen, ki mennyire legény a gáton, számos tesztet futtattam, köztük olyanokat is, amiknek nincs sok közük a JavaScripthez, de a Vega-t is tesztelni kell valahogy.

Az itt bemutatott eredmények szintetikus tesztekből származnak. Ennek megfelelően az eredményeket nem kell készpénznek venni. Attól, hogy valami gyorsabb mondjuk SunSpider-ben, még nem biztos, hogy a kedvenc webalkalmazásodban is az lesz. Ugyanakkor a szignifikáns különbségeknek már a való életben is meg kell mutatkoznia.

JavaScript tesztek

Nyissunk mindjárt a legnépszerűbbel, a már említett SunSpider teszttel. Ezt a WebKit fejlesztői készítették, és üzemeltetik. Számos JavaScript tesztet futtat le, különböző témakörökben. Eredményül a futtatáshoz szükséges időt adja meg, amiket összegezve kapjuk a végső eredményt. Ennek megfelelően a kisebb érték a jobb, az egységek ms-ban értendőek.

Az Opera ebben a tesztben mindenkit maga alá gyűr! Ezt nevezem én komoly belépőnek! A különbség még szembetűnőbb, ha az előző verzióval vetjük össze, a differencia ugyanis hat és félszeres! Látni kell, hogy ez a teszt nem pusztán önmaga miatt fontos. Rengeteg oldal van, ahol a böngészők "tesztje" jószerivel csak ennek az egy tesztnek a lefuttatásából áll. Az egyik író egyenesen odaáig ragadtatta magát a valóban nem túl rózsás eredmények láttán, hogy szerinte az Operának fel kellene hagyni az asztali verzió fejlesztésével... Nem mindegy tehát, hogy milyen benyomásokat hagy maga után ennek a tesztnek a futtatása. Lássuk, hogyan is áll össze részleteiben ez az első hely:

Tovább...

Opera 10.5, kicsit bővebben + buglista

Végre eljött a nagy nap! Megérkezett az Opera 10.5 hivatalos publikus pre-alfája. A meglepetés a 2 napja kiszivárgott belső build miatt végül nem lett meglepetés, viszont ebben már ki lehetett próbálni a VEGA mellett a második főbb újítást, a fénykorában a legjobb, de ma már igencsak régi Futhark JavaScript motort leváltó Carakan-t, ami hozta a várt hatást. A Sunspider tesztben nálam ~200ms-et ráver a Chrome legújabb Dev előzetesére is.

Következzen az új feature-ök és a bugok listáját, hogy aki a cikk elolvasása után kipróbálja, ne legyen kellemetlen meglepetésben része.

Újdonságok listája

  • VEGA (még egyenlőre csak szoftveres gyorsítással, de már így is érezhető a benne rejlő potenciál).
  • Carakan JavaScript motor
  • Átdolgozott működése a következőknek: jelszókezelő, kereső/gyorskereső, a korábbi dialógusablak helyett a többi böngészőben már jól ismert felülre beúszó sávra váltott. Utóbbi tetszetős elsötétedős-kiemelős effektet kapott.
  • 2.5.18-as verziójú Presto renderelőmotor.
  • Jobb szabványkövetés (CSS transitions and animations, border-radius és sok más).
  • Windows Vista és Windows 7 környezetbe illeszkedő Aero Glass megjelenés.
  • Windows 7 tálca jumplist.
  • Privát mód (akár ablakban, akár külön tabon).
  • Sok oldalon működik a jobbklikk menü, ahol eddig nem (Google Maps, Google Docs)
  • A tabok úsztatott mozgatása.
  • A tabok alapértelmezett elrendezése esetén eltűnt a felső menü, így a képernyő tetejére kerültek.
  • Vertikális tabok esetén átdolgozott Tab Preview.
  • Újfajta opera:cache
  • Átdolgozott címsáv: Már működik az egyszavas gyorskeresés eléírott "g" nélkül az alapértelmezett keresővel, valamint az Opera Miniből már jól ismert címkiegészítés, valamint már a Shift+Del paranccsal törölhetők belőle a nem kívánt felajánlott elemek.
  • Átdolgozott MDI ablakok: Már nincs felesleges keretük az ablakoknak vertikális/horizontális és Cascade elrendezésben, ezzel helyet spórolva és olyan hatást keltve, mintha osztott képernyő lenne. Normál esetben is eltűnt a keret és kapott felülre egy fülre hasonlító, de annál szélesebb valamit, amin keresztül meg lehet fogni.
  • Csökkent memóriafogyasztás (bár ez még pre-alfa állapotban nem túl releváns adat).
  • Jobb Flash objektum kezelés: Végre megszűnt az a zavaró tényező, mikor egy flash objektum egy pillanatra bevillan két tabváltás között.
  • Gyorsabb tabváltás: Egy kis trükk is van benne, mégpedig most már a kattintás pillanatában vált át a kiválasztott fülre, nem pedig a felengedés pillanatában. Ennek megfelelően a füleket könyvjelzőzni, vagy Speed Dial-ra/eszköztárra húzni a jobbklikk+Shift nyomvatartásával lehet. Itt nem árt figyelni, ugyanis a balklikk+Shift bezárja a fület.
  • Az opera:config végre elemenkénti súgóbejegyzéseket kapott.
Tovább...

Letölthető az Opera 10.5 pre-alfa!

A várakozásnak vége, végre minden érdeklődő letöltheti az Opera 10.5 pre-afa verzióját. Csak címszavakban: Presto 2.5.18, SW Vega, Carakan.

OPERA 10.5 PRE-ALFA LETÖLTÉSE (egyelőre csak Windows és Mac!)

Figyelem! Az előzetes verziók még sok hibát tartalmazhatnak, ezeket nem ajánlott mindennapi használatra telepíteni. Az Opera legutolsó végleges verzióját az Opera oldaláról töltheted le.

Hamarosan érkezik a részletes bemutatónk és tesztünk!

süti beállítások módosítása