martedì 24 febbraio 2009

la guerra dei browser a colpi di js

Visto che tutti le stanno sparando sul fatidico firefox nativo vs firefox wine ho fatto due test sulla mia macchina di lavoro...

Su un turion 64x2 con opensuse 11.1 32bit
i risultati sono per v8 benchmark
  • firefox 3.0.6 pacchettizato da opensuse: 61,6
  • firefox 3.0.6 wine: 104
  • opera 10 beta: 111,1
  • arora 0.5 compilato con qt 4.5rc: ben 647 (qtwebkit binding con supporto ns plugin)
  • firefox 3.0.6 scaricato da mozilla: 70.1 già un po' di più del firefox nativo
  • mentre swiftfox 3.0.4 ottimizzato per amd ottiene un misero 75.5 poco più dei binari distribuiti da mozilla, e molto meno delle performance sotto wine.
non ho un windows nativo per farci i test per cui ho optato per un windows xp service pack 3 virtualizzato tramite virtualbox.
Notare che avendo il processore le estenzioni per la virtualizzazione e avendo attivato gli apposoiti flag sotto virtualbox 2.14 le performance dovrebbero essere paragonabili ad una versione nativa.
  • firefox 3.0.6 Windows Xp Sp3 virtualizzato: 293 impressionante se paragonato alla versione linux
  • crhomium Windows Xp Sp3 virtualizzato: 2550 lol :)
  • crossover chromiun: 595,2 meno di arora che usa il binding qtwebkit...
  • internet explorer 7 Windows Xp Sp3 virtualizzato un inglorioso 22

quindi viene da dire che sicuramente le performance non sono penalizzate da i driver della scheda video visto che oltretutto virtualbox si appoggia a x nativo...

al limite, secondo me la vera differenza la fa il compilatore, non so firefox ma nel caso di crhomium la versione windows si appoggia al compilatore c++ di microsoft.
C'è da dire un altra cosa anche applicazioni che fanno uso peso di javascript non risultano penalizzate nemmeno in browser fesso come ie7 che in questi test ha performance indecenti, quindi c'è da dire che questi benchmark lasciana molto il tempo che trovano...
Linux non esce certo sconfitto perché quelli di mozilla hanno deciso di ottimizzare di più la versione windows i vantaggi di usare un sistema opensource del calibro di gnu/linux sta in altro. (sicurezza, comodità di avere un sistema unix, un firewall che non ha rivali, possibilità di modifiche all'interfaccia grafica impossibili su altri sistemi, etc.. ho semplicemente il fatto che per aprire un tunnel ssh su linux mi basta un comando su windwos mi tocca riempire dodici voci di menu su putty e oppure l'impossibilità su windows di avere un terminale multitab decente)

è pure vero che oggigiorno si apre il browser la mattina alle sette e si chiude la sera a mezzanotte (quando va bene) ma le differenze di performance in uno script js non cambiano la vita a nessuno.

aggiornamento: 25.02.15.30

firefox 3.0.6 compilato i686 sotto sidux raggiunge uno score di 222,4 che pur essendo un pò sotto il valore raggiunto dalla versione firefox Windows è dello stesso ordine di grandezza.
Conclusioni? non ne sono certo ma probabilmente la differenza di performance tra una distro ed un altra sono dovute alle ottimizzazioni del kernel e della libc quindi un binario i686 fa la differenza (se anche il sistema sotto è ottimizzato)
A questo punto chi usa gentoo o archlinux fa bene:)
Resta da fare:
un test comparativo su Osx e su Arch..

4 commenti:

Anonimo ha detto...

azz però ammettiamolo è un pò desolante... Non c'è certo da essere contenti

michelangelo giacomelli ha detto...

Effettivamente uno si aspetterebbe il contrario... comunque potrebbe essere tragico se dipendesse dalla bontà del compilatore c/c++ microsoft rispetto allo gnu... c'è da dire che gcc supporta molte, moltissime architetture e molti sistemi operativi mentre il compilatore di microsoft supporta solo windows e la/le piattaforme i386 e x86_64.
Però in ambito desktop le performance contano. Stasera faccio una prova di firefox su osx che pure è compilato con gcc e vediamo che risultati da.

Anonimo ha detto...

"è pure vero che oggigiorno si apre il browser la mattina alle sette e si chiude la sera a mezzanotte (quando va bene) ma le differenze di performance in uno script js non cambiano la vita a nessuno"

Ti inviterei a vedere le performance fra firefox e chromium in un ufficio in cui si fa pesante uso di applicazioni WEB.

Lì la differenza è palese.

Da un lato hai firefox che diventa sempre più pesante e lento e con tutte le funzionalità javascript lente e poco responsive.
Dall'altro hai un sistema sempre responsivo, agile e scattante con chromium.

Forse a te sembra una cosa da poco... ma quando ci hai a che fare per 8 ore al giorno vedrai che il livello di stress causato dalle lentezze di firefox diventa insopportabile e la differenza si vede ad occhio nudo, proprio come si vedeva la differenza fra un 286 e un 486.

Ovviamente IE non è nemmeno stato preso in considerazione. Dio ce ne scampi.

michelangelo giacomelli ha detto...

Boh... considera che io di lavoro faccio il programmatore lamp (dove la p oltre che php sta anche per perl e alle volte diventa una C) e ho a che fare con ajax e javascript tutti i giorni, e se il codice è ben scritto nessun browser ne risente, nemmeno ie7 che ha score bassissimi in questi test, ne firefox... anzi io non vedo il degrado di performance la mattina alle 8.30 rispetto alla sera alle 19 e pure tengo firebug e altre estensioni che utilizzo per sviluppare aperte tutto il giorno.
IE6 e IE7 almeno per quanto riguarda il mio target di utenti vieni utilizzato dall'80% quindi è importante sviluppare javascript bene e che sia performante anche su ie, avere crhome con un motore js pompato non significa scrivere codice da cani :)