RSS

Firefox: se non ci credevate, ecco le prove che Javascript è sempre più veloce!

28 Gennaio 2010

Firefox, Internet

firefox-64

Il motore Javascript di Firefox migliora di versione in versione, del resto ormai usa un compilatore just in time proprio per sopperire alle carenze velocistiche offerte da un interprete per l’esecuzione di un linguaggio puramente interpretato.
La conseguenza è che a ogni rilascio di una versione maggiore di Firefox ci viene indicato che Firefox è (ad esempio) il 20% più veloce della versione precedente nel riguardo di Javascript.
Spesso, a questo riguardo, sento dire che con tutti questi miglioramenti, Firefox dovrebbe caricare una pagina in tempo zero, pertanto è sola pubblicità da parte di Mozilla per sostenere il suo prodotto 🙁

No, le cose non stanno proprio così: il miglioramento c’è e si può misurare e dalle misure si ricava proprio il dato ottenuto da Mozilla, bisogna però essere consapevoli che una percentuale va comunque rapportata al valore da cui si è partiti.

Ma andiamo con ordine. Per visualizzare una pagina HTML oggigiorno ci sono più cose che un browser deve saper eseguire per renderizzarla.
Oltre al codice HTML vero e proprio che da struttura e contentuto alla nostra pagina web, deve gestire i fogli di stile (CSS) e gli script Javascript in esso contenuti. Questi sono i tre elementi minimi che un sito normalmente utilizza.
Solo se il browser gestisce efficacemente tutti questi punti alla fine otterremo la visione e interazione col nostro sito velocemente.

In particolare gli script JavaScript dovrebbero essere posizionati, come caricamento, nel fondo della pagina: almeno così ci dicono parecchi manuali di creazione siti se volete ottenere un caricamento veloce 😉
Forse questo è dovuto al fatto che effettivamente JavaScript al giorno d’oggi è stato sempre il punto debole, ovvero l’elemento più lento nel caricamento di una pagina, da qui la buona azione di posizionarlo alla fine, in modo da dare meno fastidio (oppure ci sono effettivamente delle ragioni tecniche, ma ciò esula dal ragionamento in sè).

Quanto è veloce Firefox nei confronti di JavaScript? Per scoprirlo ci basta poco: eseguiamo un test di velocità e lo confrontiamo tra le varie versioni 😉

Tra i vari test disponibili prendiamo questo: http://www2.webkit.org/perf/sunspider-0.9/sunspider-driver.html che testa parecchie caratteristiche di JavaScript. Ovviamente ce ne sono tanti altri, ma ci basta avere un ordine di idea di quanto veloce sia una versione rispetto ad una alta.

Per il confronto ho optato per queste versioni di Firefox: 1.5, 2.0, 3.0, 3.5 e l’attuale 3.6 (ho evitato la 1.0 solo perchè richiedeva librerie di sistema parecchio vecchie, daltronde questa versione risale al 2004) e giusto per avere un altro paragone, Konqueror 3.5.10 che è il browser di default di KDE3.

Come vediamo dalla tabella, Konqueror impiega ben 30 secondi per eseguire il test (del resto durante il test era pure uscita una maschera che ci chiedeva se killare la pagina a causa di un pesante uso del processore da parte del motore Javascript!).
Firefox 1.5 e 2.0 impiegano metà tempo di Konqueror (ovvero sono il 50% più veloci).

Firefox 3.0 impiega 3,5 secondi, mentre la versione 3.5 dimezza ancora i tempi rispetto al predecessore, portandosi a 1,5 secondi.
Infine Firefox 3.6 abassa il tempo a 1,2 secondi, ottenendo un miglioramento di circa il 17% in linea (visto il margine di errore del test) col 20% dichiarato da Mozilla con le note di rilascio della versione 3.6.

Browser ms errore %
Konqueror 3.5.10 30831 +/- 10.0%
Firefox 1.5 14940 +/- 1.2% 51,54
Firefox 2.0 15008 +/- 1.0% -0,46
Firefox 3.0 3507 +/- 2.4% 76,63
Firefox 3.5 1504 +/- 1.6% 57,11
Firefox 3.6 1250 +/- 1.8% 16,89


Se si guardano i dati il miglioramento è netto dalla versione 1.5 e se non lo avevate notato prima (magari a causa del passaggio graduale di versione in versione che avete eseguito) ormai dovrebbe essere lampante 😉

Certo, il 20% di 1,5 secondi sono 200ms, un tempo quasi impercettibile, ma questo è comunque un bel 17% di miglioramento: se stiamo caricando 10 pagine in contemporanea su 10 tab (magari perchè salvate di default alla chiusura di Firefox), il caricamento avverrà comunque con 2 secondi in meno della versione precedente e 2 secondi è un tempo che noteremo di sicuro 😉

In definitiva un miglioramento è sempre un miglioramento: grazie a questi piccoli passi, potremo aspettarci che Firefox 4.0 completi il test in 600ms, un altro 50% di tempo tolto rispetto ad ora.

Ah, dimenticavo, il test è stato eseguito sul quad core 2,4MHz (ho preferito il pc fisso al netbook solo per il tipo di configurazione da programmatore che riservo al pc fisso), ma utilizzo sempre il PII 266MHZ per gestire l’azienda di famiglia (sempre con Linux): qui quel piccolo incremento di velocità del 20% rispetto alla versione precedente si traduce realmente in un tempo comunque tangibile e visibile!

4 Responses to “Firefox: se non ci credevate, ecco le prove che Javascript è sempre più veloce!”

  1. karmaline Says:

    Firefox 3.5 1269.6ms +/- 1.6%
    Epiphany 564.4ms +/- 0.8%
    Midori 556.2ms +/- 0.9%
    Chromium 490.8ms +/- 4.8%

    Uso anch’io firefox come browser ma il confronto con altri programmi è imbarazzante. Tra l’altro la versione di chromium che ho usato per fare i test ha le stesse estensioni che uso con firefox(flash block, ad block, session manager, delicious).
    Ho paura che firefox abbia raggiunto i limiti strutturali del proprio codice e che ogni miglioramento è irrisorio rispetto alla concorrenza. Sarebbe utile che i vertici di mozilla foundation pensassero ad una riscrittura completa del codice.

  2. ice00 Says:

    Grazie dei bench con gli altri browser (io uso solo Firefox e Konqueror) 🙂

    Il bello della concorrenza è proprio che da stimolo al miglioramento continuo del proprio prodotto.
    In questo caso Firefox deve migliorare di un altro 50% per raggiungere gli altri avversari.

    Dovremo solo attendere la verione 4.0 per capire se la strada intrapresa darà i suoi frutti per noi utenti..

  3. Leolas Says:

    su windows verrà sfruttata la GPU, e penso che lì FF supererà di brutto gli altri, ma su Linux mi sa che non vedremo molto presto una funzione simile.. 🙁

  4. ice00 Says:

    Konqueror 4.3.4 3273.6ms +/- 1.8%

    Anche Konqueror ha migliorato molto dalla verione KDE3 alle KDE4, ma è ancora lontano dai concorrenti 🙁

Leave a Reply