Elérkezett a nagy nap, amikor az egyesek által elavultnak, ősöregnek, cammogó dinoszaurusznak tartott :-) Firefox3.0 kihívói megmérettettek. Mivel a kedélyek az előző postom után kissé felkorbácsolódtak, sőt emailen is kaptam pár megjegyzést arra nézve, hogy mit és hogyan kéne tesztelnem, és nem éppen szaloncukor-papírba csomagolva. ;-) Különösebben nem bosszant a dolog, de éppen emiatt határoztam el, hogy ha erőmből telik, minél előbb véget vetek a panaszáradatnak. Következzen hát a Midori versus Chromium versus Arora versus Opera versus Firefox3.0 versus Firefox 3.5 teszt!
Előkészületek
Meg kell, hogy mondjam, eredetileg csak a Midorit és a Chromiumot akartam szembeállítani egymással; és hosszas hezitálás után döntöttem úgy, hogy az Arora-t is megtesztelem, mivel nem igazán fűlött a fogam a QT4 felrakásához; de aztán végülis győzött a kiváncsiságom. Azután elgondolkodtam, hogy az Arora egyedüli QT-sként furcsán mutat, nem fair, ezért ötletszerűen letöltöttem egy Operát is a honlapjukról. Tovább gondolkodva oda jutottam, hogy nehéz úgy tesztelni a kihívókat, ha nem tudjuk hozzámérni a kihívotthoz, tehát a gépen lévő Jauntys Firefox3.0.12 tesztelése elengedhetetlen. Mivel viszont én kifejezetten szeretem a Firefoxot, most már azt nem tartottam fair-nek, hogy az összes többi böngészőből a legújabbat tesztelem, a Firefoxból pedig egy két évvel ezelőtti konstrukciót. Így hát hozzácsaptam a bagázshoz a legújabb, 3.5-ös Firefoxot, ami a Jauntyhoz elérhető.
A /etc/apt/sources.list szerkesztése triviális, root felhasználóként az alábbi sorokat biggyesztettem a végére (a webkit a Midorinak kell, ugyebár):
deb http://ppa.launchpad.net/midori/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/webkit-team/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/mapopa/arora-stable/ubuntu jaunty main
Mivel a PPA repozitóriumokban a csomagok GPG aláírással rendelkeznek, hogy le tudjuk ellenőrizni az eredetiségüket, ezért importálnunk kell a nyilvános kulcsokat:
bagoj@tarantula:~$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 4E5E17B5
bagoj@tarantula:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A69241F1
bagoj@tarantula:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 2D9A3C5B
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EF648708
Az előkészítés után már csak telepítenünk kell:
apt-get update
apt-get install chromium-browser midori arora
Az Operát, ahogyan mondtam, a weblapről töltöttem le és telepítettem fel (.deb formátumban), a Firefox3.5-öt pedig a Jaunty tárolóiból.
A tesztgép
A teszteket a szokásos "nagyvasomon", egy IBM Thinpad T30-on követtem el:
- Intel Pentium 4 M CPU 2,2Ghz (BogoMIPS: 2392,3)
- ATI Radeon Mobility 7500
- 1006Mb RAM, vagyis 1Gb
- FUJITSU MHV2040A 40Gb merevlemez
A böngészők adatai összefoglalva
Név | Verzió | Engine | GUI | Diszken elfoglalt hely |
Chromium | 3.0.196.0~svn20090729r21952- 0ubuntu1~ucd2~jaunty | Webkit | GTK | 44,6Mb |
Midori | 0.1.8-1+git20090728~jjwkt1 | Webkit | GTK | 9,9Mb |
Arora | 0.8.0~git20090721-1~jaunty1 ~upstream1ubuntu1 | Webkit | QT | 50,6Mb |
Firefox3 | 3.0.12+build1+nobinonly- 0ubuntu0.9.04.1 | Gecko | GTK | ? |
Firefox3.5 | 3.5~b4~hg20090330r24021+ nobinonly-0ubuntu1 | Gecko | GTK | 9,82Mb |
Opera | 9.64 Release 2480 - QT3.3.5 | Presto | QT | 26,1Mb |
Az Arora nagy helyfoglalása arra vezethető vissza, hogy nekem nem voltak fent QT4 library-k, ezért elég sok mindent fel kellett pakolásznia. Ugyanígy a Chromiumnak valószínűleg. Ha mondjuk egy olyan gépről telepítek, ahol csak X.org van és semmilyen grafikus környezet, akkor a Firefox-ok is ugyanennyit tettek volna fel. Érdekes, hogy a statikusan QT3.3.5-höz fordított Opera viszonylag kevés helyet foglal. A Firefox3-at nem is tudtam eldönteni, mennyit foglal, hiszen az alaprendszer része.
A teszt előtti utolsó lépések
További előkészületként, mielőtt elkezdtem volna tesztelni, a Chromium-nak és az Operának odamásoltam a flash lejátszásához szükséges osztott programkönyvtárat:
sudo cp /usr/lib/flashplugin-installer/libflashplayer.so /usr/lib/chromium-browser/plugins/
sudo cp /usr/lib/flashplugin-installer/libflashplayer.so /usr/lib/opera/plugins/
A Chromiumot a "chromium --enable-plugins" paranccsal indítottam minden esetben, hogy a flash támogatást betöltse. A többi böngészőt csak simán a nevével indítottam el, és a kezdőoldalt minden esetben a "gyári" értéken hagytam. Ennek a teszt módszertannál lesz jelentősége mindjárt.
Sajnos az Operának nem volt elég a libflashplayer odamásolása. Túrtam a netet és találtam leírásokat is, hogy mit kellene leellenőrizni, én mindent megtettem, és az about:plugins is azt írta ki, hogy van Flash támogatás, mégsem jelenítette meg a Flash animációkat. Ezért nem vontam le pontot, mivel elképzelhető hogy én nem értek hozzá, de kb. 20-25 perc szenvedés után feladtam.
Hogyan teszteltem?
Vegyük sorba, hogy milyen teszteket végeztettem el a böngészőkkel. Mivel ilyet még nem csináltam, ezért gondoltam, elég lesz a CSS-támogatás, a JavaScript sebesség és némi kompatibílitási tesztek mellett lesz egy real-life teszt is. Minden teszt előtt és után megnéztem a böngésző memóriafoglalását, majd ezután visszaléptem a böngésző kezdőlapjára, és harmadszor is megmértem, hogy mennyi memóriát sikerült felszabadítania. Ezeket az értékeket nagyon fontosan tartom abból a szempontból, hogy megismerhető a versenyzők memóriagazdálkodása, ami olyan gyengécske gépnél, mint az enyém, nem elhanyagolható.
Én nem írtam most JS tesztet, ehylett ezeket az ipari sztenderdnek mondható teszteket választottam ki (ezek valamilyen szinten mind elfogultak valamelyik böngészővel szemben, hiszen adott böngészők sebességtesztjére és fejlesztésére használják):
1.Celtic Kane - Ezen a teszten az Opera és a Safari szokott nyerni; elég egyszerű; van benne sztring, matematikai, tömb és DOM és Ajax művelet is. Az eredményt millisecundumban adja, a kisebb érték a jobb.
2. Google V8 teszt - Ezt a tesztet a Google fejlesztői hozták létre a V8 Javascript engine tesztelésére. Gondoltam, itt végképp kiderül, hogy a többiek hogyan muzsikálnak a Chromium ellen, míg természetesen biztos voltam benne hogy ezt a tesztet melyik böngésző nyeri. :-) Az eredmény egyetlen pontszám, ami minél nagyobb, annál jobb.
3. Sunspider - Elsősorban a Webkit motor tesztelésére szakosodott, sok és alapos JS tesztet futtató oldal. Az eredményt ez is futási időben, ms-ban adja meg, értelemszerűen a kisebb érték a jobb.
4. Dromaeo - A Mozilla Alapítvány tesztprogramja, amivel a Firefox optimalizálások eredményét tesztelik. Ez a teszt önmagában is több, mint fél óráig tart; a meghatározott időn belül elvégzett műveletek számát nézi. Ebből következően itt a nagyobb érték a jobb. Ez a teszt leginkább a DOM-műveletekre fekszik rá.
5. TriteLife.com teszt - Ez a teszt semmi mást nem mér, csak bekezdések létrehozásának puszta sebességét. A több, mint 18 000 db. paragrafus színeiből egy képet rak ki. A teszt eredménye tökéletesen használhatatlan a napi használatban, de érdekesnek tűnt. Az eredmény ismét a futási idő, tehát a kisebb érték jobb.
6. ACID2 teszt - Szerintem nem kell bemutatnom - A CSS és a sztenderdeknek megfelelést teszteltem; a referencia képhez viszonyítva a különféle böngészők által létrehozott ábrát.
7. ACID3 teszt - bár a napi használatban nem sokat jelent, de úgy gondoltam, mégiscsak letesztelem az ACID3 tesztet is, hiszen ez a legújabb sztenderdeknek való megfelelést mutatja. Ismét egy referencia képhez lehet hasonlítani a böngésző képernyőjét.
Az első öt tehát lényegében JavaScript teszt, az utolsó kettő pedig CSS + standard compliancy. De hol marad a valós felhasználás?
8. Real-Life teszt - a saját valós felhasználásomat mértem. Konkrétan, elindítottam az adott böngészőt a kezdőlapjával, majd betöltöttem egyesével tipikus, jól ismert és sokak által használt weboldalakat; miközben mértem a memóriafogyasztást. Ezek után egyesével bezártam az oldalakat (fordított sorrendben) és ismét mértem a memóriát; tesztelve a felszabadítás mennyiségét.
Az ilyen weboldalak letöltése közben nyilván értelmetlen lenne sebességet mérni, hiszen ez erősen függ a hálózattól, úgyhogy sebesség adatokat nem teszek közzé ezúttal. A méréseket az alábbi oldalakkal végeztem:
- https://www.youtube.com/watch?v=XUXh-X1iveU
- http://www.index.hu
- http://www.hup.hu
- http://gmail.com (belépve)
- http://blog.hu/admin (belépve, épp ezt a postot szerkesztve)
Ezekről készítettem képernyőmentést is; ezek alapján össze lehet hasonlítani, hogy melyik oldalt hogyan renderelik le az egyes böngészők, mekkora a beállított alap font készlet stb. A mentéseket más időpontban végeztem, mint a mérést; hogy semmi se zavarja meg a tesztet (még így sem ugyanazok a képernyők kerültek mentésre, hiszen pl. az Indexen nagyon gyorsan változik a tartalom.)
Tehát még egyszer: betöltöttem a youtube-ot, mértem. Aztán nyitottam egy új tab-ot, betöltöttem a zindexet, mértem. Újabb tab a HUP-pal stb. Aztán bezártam a bloghu-t, mértem. Bezártam a gmail-t, mértem. Végül a youtube-ot nem zártam be, hanem a kezdőoldalra ugrottam.
A böngészőket egyesével teszteltem, és minden teszt után kiléptem és külön ellenőriztem azt, hogy nem maradt-e a memóriában. A különböző böngészők között újraindítottam a gépet, ugyanis nem akartam sújtani egy másik böngészőt amiatt, mert mondjuk az előtte lévő folyatta a memóriát (bár ez nem valószínű, természetesen).
Minden tesztet 3x végeztem el, és a középső értéket vettem alapul. NEM ÁTLAGOLTAM, nem számoltam szórást, csak egyszerűen a középső értéket kiválasztottam és a többi mérési eredményt eldobtam. Ha valaki szeret átlagolni, futtassa le a teszteket, de én nem az elvont számtani átlagra voltam kíváncsi, hanem egy tényleges futási eredményt rögzítettem.
Bár szerintem a módszertan legalább olyan fontos, mint az eredmény, most jöjjön végre az utóbbi, hiszen erre várunk. Bevallom, a kiértékeléskor én is meglepődtem párszor... :-)
Ja, még egy fontos: A végeredményeket nem számszerűen, hanem százalékosan fejeztem ki; az aktuális legjobb a 100% és a tőle elmaradók automatikusan kevesebb. Ha a kisebb érték volt a jobb, akkor reciprokot vettem, hogy mindenképp összehasonlítható legyen az eredmény. Tehát a 100% az a maximum teljesítmény, a többiek a lemaradók.
Ezek után bepirosoztam a legrosszabb eredményeket és bezöldeztem a legjobba(ka)t; volt hogy egy kategóriában több piros vagy zöld van, ha közel álltak egymáshoz az eredmények. Ezután egy csontot kapott minden zöld, és egy csont levonást minden piros. Magyarul az egésznek a legvégén kijött minden böngészőre egyetlen, végső pontszám. (Minden kategória azonos súllyal esett latba, tehát pl. a valós élet tesztet nem tartottam fontosabbnak, mint az ACID teszteket. Akinek ez nem tetszik, számolja át; elvégre a matematika azért szép mert azt hozunk ki győztesnek, akit akarunk. :-))
Eredmények
0. Indítás
A böngészők indítási idejét, és a default oldallal a memóriafoglalást is néztem. Ez csak referenciaként van itt, a végeredménybe nem számított bele.
Indulás | Arora | Chromium | FF3 | FF3.5 | Midori | Opera |
Idő (mp) | 5,2 | 3,7 | 6,4 | 4 | 6,2 | 14,6 |
MEM foglalás (Mb) | 53,4 | 83,5 | 32,5 | 37,7 | 76,2 | 35,1 |
1. Celtic Kane
Ez egy eléggé megosztós teszt volt. Nagy meglepetésemre az Arora az első, még a Midori kapaszkodik, A Chromium pedig próbálkozik, a többiek eredménye lesújtó. A Firefox védelmére annyit tudok felhozni, hogy látszik a fejlődés.
Celtic Kane | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
MEM fogyasztás, Mb | 0,12 | 7,27 | 11,87 | 12,34 | 2,06 | 9,67 |
MEM felszabadítás, Mb | -0,85 | 4,18 | -0,2 | 11,27 | -81,29 | -0,5 |
Relatív teljesítmény, % | 100,00% | 80,14% | 48,97% | 62,65% | 90,00% | 46,90% |
Nekem is eszembe jutott természetesen, hogy aki a legöbb memóriát foglalja le, az fogja nagy valószínűséggel a legtöbbet felszabadítani. De ez nem probléma szerintem, egy pont plusz, egy pont mínusz, nem történt semmi. Nem szeretnék úgy értékelni, hogy a lefoglalt majd felszabadított memória arányát vagy ilyesmit nézek, mert az csak újabb vitákhoz vezetne, illetve beleszólhat a Linux memóriakezelése is a dologba (pl. a Midorinál tuti valami ilyesmiről lehetett szó, de mit csináljak, ha ez jött ki, ez jött ki. Ja a memóriát nem mértem 3x, mielőtt félreértenétek, hanem az adott teszt memória-értékeit tettem el - ez jött ki és kész).
2. Google V8 tesztje
Szinte hihetetlen, hogy a Google böngészője nyert. :-) Az Opera viszont sajnos összeszedett pár rossz pontot, úgyis mondhatnám, hogy ez teljes bukta volt.
Google V8 | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
MEM fogyasztás, Mb | 113,72 | 64,06 | 135,14 | 121,94 | 100,66 | 140,46 |
MEM felszabadítás, Mb | 34,16 | 52,77 | -0,62 | 100,26 | 70,48 | -0,5 |
Relatív teljesítmény, % | 34,50% | 100,00% | 6,01% | 7,90% | 61,86% | 3,90% |
3. Webkit fejlesztők tesztje
Természetszerűleg számítottam a Webkit motorok szárnyalására. Nyert a Midori, a középmezőnyben végzett a Chromium, Arora és FF3.5, az FF3 és az Opera a végén kullog.
Sunspider (Webkit) teszt | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
RAM fogyasztás, Mb | 5,33 | 32,36 | 26,87 | 6,04 | 2,79 | 11,28 |
RAM felszabadítás, Mb | -0,5 | 29,81 | -0,73 | -3,88 | -0,98 | 0 |
Relatív teljesítmény, % | 73,34% | 71,60% | 31,71% | 68,05% | 100,00% | 14,30% |
4. Mozilla Alapítvány tesztje
A nyerő pozíciót nyilván a Gecko motornak adtam ezúttal - de épp az a lényeg, hogy a valóság olykor meghaladja a várakozásokat. Az egyértelmű győztes a Chromium és a Midori is igen közel jár hozzá (adhattam volna egy pontot oda is). Az FF3 és Opera a fasorban sincs, de náluk is rosszabb eredménnyel zárt az Arora, mivel egyáltalán el sem indult a teszt.
Dromaeo | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
RAM fogyasztás, Mb | 255,33 | 357,27 | 255,41 | 11,15 | 249,8 | 169,54 |
RAM felszabadítás, Mb | 1,33 | 354,84 | 3,46 | -13,8 | 182,01 | -0,99 |
Relatív teljesítmény, % | 0,00% | 100,00% | 24,33% | 50,93% | 98,68% | 15,60% |
5. Javascript bekezdés létrehozás teljesítmény-teszt
Ha teljesítményről van szó, a Midori ott van az első sorban - nincs ez most másképp sem. A Firefoxok rondán elvéreztek ezen a teszten, memóriapazarlóan és lassan hozták létre a bekezdéseket. Hozzátenném, hogy egyben ez a két böngésző volt mindössze, amelyik rákérdezett, hogy hosszú ideje fut már a Javascript, biztosan folytatom-e? Tehát egyben a legbolondbiztosabbak is a Vörös pandák.
JS paragraph benchmark | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
RAM fogyasztás, Mb | 17,55 | 20,01 | 46,75 | 54,49 | 18,77 | 42,88 |
RAM felszabadítás, Mb | 0,48 | 29,68 | 1,21 | -2,42 | 2,78 | -5,57 |
Relatív teljesítmény, % | 74,24% | 65,96% | 0,23% | 0,63% | 100,00% | 9,53% |
6. ACID2 teszt
A memóriakezelés és a teljesítmény között olyan elenyészőek voltak a különbségek, hogy nem hirdettem sem győztest, sem vesztest. Kijelenthetjük, hogy minden böngésző csont nélkül vette ezt az akadályt.
ACID2 | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
RAM fogyasztás, Mb | -0,01 | -9,92 | 7,96 | 1,09 | 0 | 0 |
RAM felszabadítás, Mb | 0 | 0,63 | -9,52 | -2,44 | -0,98 | -3,52 |
Relatív teljesítmény, % | 100,00% | 100,00% | 100,00% | 100,00% | 100,00% | 100,00% |
7. ACID3 teszt
Mivel ez a teszt szintén százalékosan adja meg a teljesítményt, itt nem kellett átalakítanom a végeredményeket. Megjegyzés, hogy az Arora, bár 100%-ra teljesített, volt egy "Linktest failed" hibaüzenet; az Operánál pedig egy "FAIL". Ezekért nem vettem le külön pontszámot, megtekinthetők lesznek a képernyőmentések között. A Firefoxnál látszik a javuló tendencia, a többi egyértelmű.
ACID3 | Arora | Chromium | Firefox3 | Firefox3.5 | Midori | Opera |
RAM fogyasztás, Mb | 7,16 | 18,29 | 11,71 | 8,95 | 5,94 | 6,79 |
RAM felszabadítás, Mb | -0,71 | 13,1 | -0,56 | -0,1 | 0,97 | -3,88 |
Teljesítmény, % | 100,00% | 100,00% | 72,00% | 93,00% | 100,00% | 85,00% |
8. Real-life teszt
Hogyan viselkednek, hogy eszik a memóriát ezek a "bengészők" valódi felhasználás közben?
Ezt sajnos nem tudom most leírni, mert belefutottam a blog.hu valamilyen limitációjába - egyszerűen nem lehet ennél hosszabb egy post. Visszatérek a következőben!