29 febbraio, 2008

Le prestazioni di Firefox 3

di Percy Cabello

Oltre al lungo elenco di nuove funzionalità e miglioramenti che abbiamo potuto finora trovare nelle Beta di Firefox 3, è in arrivo una serie di miglioramenti nelle prestazioni a partire dalla prossima Beta 4.

Alla fine sono riuscito a condurre alcuni test per vedere come si comporta Firefox 3 in confronto a Firefox 2.

JavaScript

Come probabilmente saprete, JavaScript sta diventando sempre più importante mentre noi utenti ci aspettiamo che le applicazioni web assomiglino sempre più alle applicazioni desktop. Per gli sviluppatori web, lo strumento d'eccellenza per fare questo è JavaScript. E per Firefox, si tratta di un punto cruciale in quanto l'intera interfaccia (estensioni comprese) gira in JavaScript: l'apertura di un menu contestuale, un menu, una scheda, una finestra, JavaScript è sempre al lavoro.

E sarete contenti di sapere che le prestazioni di Javascript nelle ultime build di Firefox 3 sono migliorate di almeno 3 volte rispetto a Firefox 3, e raddoppiate rispetto alla Beta 3. Firefox 3 è diventato il motore più veloce tra tutti i browser in circolazione, compresa l'ultima Beta 9.5 di Opera. Tutto questo secondo SunSpider, uno strumento di benchmark per JavaScript concepito da WebKit (il progetto che è dietro il motore di Safari) per misurare le prestazioni di JavaScript.

Occorre comunque sottolineare che nessuno strumento di benchmark è perfetto o esente da critiche: un motore probabilmente può comportarsi meglio in un test rispetto che un altro.
E bisogna anche dire che un motore o un'applicazione può essere ottimizzato per avere particolari prestazioni in un determinato test.

Memory footprint

Firefox 2 è famoso per consumare una gran quantità di memoria e, cosa più seccante, consumarne ancora di più quando si pensa che non stia facendo nulla.

Su un sistema Windows XP SP2, ho condotto un semplice test con 9 pagine web in un nuovo profilo, nel quale la pagina iniziale era vuota. I rilevamenti sono stati effettuati con il Task Manager di Windows. Il test comprende delle pagine web molto banali mentre le pagine più complesse sono state aperte mantenendo le prime pagine aperte. Ho chiuso un paio di schede per vedere quanta memoria venisse liberata e, alla fine, ho lasciato il browser in stand-by per un'ora per vedere se il consumo di memoria rimaneva stabile.

Ecco i vari passi:

  1. Visitato il sito del New York Times, cliccato sulla sezione Technology, aperto un paio di articoli.
  2. Visitato Digg, cliccato su Upcoming e cliccato sulle pagine 2 e 3.
  3. CNET News, cliccato sulle tre storie principali. Ritornato quindi alla homepage.
  4. Visitato la pagina in russo e quella incinese di Wikipedia. Ho cliccato sul primo collegamento nella barra laterale in ciascuna versione e sono ritornato alla homepage.
  5. Preso il primo rilevamento.
  6. Guardato questo video su YouTube, più un altro video dalla barra di destra.
  7. Sono entrato nella mia posta su Gmail, ho scritto un'email inserendo due immagini piuttosto grandi (2MB ciascuna), l'ho inviata a me stesso e quindi ho aperto la email appena ricevuta.
  8. Su Google Docs, ho creato un nuovo documento di testo ho scritto una frase di cinque parole, le ho messe in grassetto e centrate nella pagina, ho aggiunto un'immagine .gif di 20KB e ho salvato il documento.
  9. Visitato Netvibes, ho guardato tutte le schede predefinite, cambiato il titolo della pagine e aggiunto un breve elemento nell'elenco delle cose da fare.
  10. Preso il secondo rilevamento.
  11. Chiuso Netvibes e YouTube e atteso 20 secondi.
  12. Preso il terzo rilevamento.
  13. Lasciato aperto il browser per circa 1 ora.
  14. Ultimo rilevamento.

I risultati:

RilevamentoFirefox 2.0.0.12Firefox 3 Beta 3
1. Pagine web normali73 MB80 MB
2. Siti del Web 2.0149 MB135 MB
3. Chiusura di un paio di schede142 MB123 MB
4. Dopo 1 ora in stand-by181 MB123 MB

Come potete vedere, Firefox 3 mostra una migliore gestione della memoria perché ne ha liberata di più quando sono state chiuse le due schede e ne ha mantenuto stabile l'utilizzo quando l'applicazione non era in uso.

Questo test non è comunque esaustivo perché, a seconda delle vostre abitudini di navigazione, potete avere più schede aperte contemporaneamente e, inoltre influisce la presenza dei vari plugin. Si tratta solamente di un test di esempio nel quale è possibile apprezzare i numerosi miglioramenti che introduce Firefox 3.

Tempi di avvio

Il mio approccio naif per misurare il tempo di avvio di Firefox è consistito in un file batch che lanciava il comando time e quindi il browser in test era configurato con una semplice pagina iniziale che mostrava (con una linea di codice Javascript) l'ora attuale. Calcolando la differenza tra i due orari potevo vedere il tempo di avvio con l'approssimazione di un secondo.

Prima di ogni test, riavviavo il mio portatile per ripulire la cache e per avere una partenza "a freddo". Quindi chiudevo e riavviavo Firefox per vedere che vantaggi traeva dalla cache del sistema operativo.

Riassumendo, ho avuto gli stessi risultati: 10 secondi per un avvio "a freddo", 4 secondi per un riavvio. Potrebbero magari esserci alcuni millisecondi di differenza ma questo va oltre la reale percezione dell'utente.

Altre novità

Da oggi le nightly build di Firefox per la piattaforma Windows beneficiano anche dell'ottimizzazione guidata del profilo (OGP). Con la OGP, una volta compilato Firefox il binario che ne deriva viene lanciato mentre un'altra applicazione ne tiene sotto controllo il comportamento e crea un profilo delle parti di Firefox che vengono maggiormente utilizzate e in quale ordine. Il codice viene quindi ricompilato ma questa volta è guidato dal profilo generato, con il risultato di una nuova build più ottimizzata.

Ted Mielczarek, che segue il processo delll'OGP in Mozilla, sostiene che si può già notare un miglioramento del 10% in alcuni test condotti da Mozilla. Le build per Linux potrebbero avere OGP dopo la Beta 4 e speriamo che presto questo sarà possibile anche per le build per Mac OS X.

La Beta 4 di Firefox 3 dovrebbe essere disponibile entro due settimane.

Nessun commento: