25 maggio, 2007

E allora cos'è il software gonfiato? [terza parte]

di Percy Cabello

Firefox ha dei problemi di memoria. E' innegabile. Lavorate con Firefox per alcune ore con 15-20 schede aperte contemporaneamente e vedrete che il browser si sarà accaparrato circa 150 MB. Tutto questo indipendentemente dalla quantità di RAM installata nel sistema. Se avete 1 GB o più, non noterete neppure questo comportamento. Scendete a 512 MB e inizierete a cercare il colpevole: il Task Manager di Windows coglierà senza indugio Firefox con le mani nella marmellata di memoria.

I migliori tempi di risposta nei pulsanti di Avanti e Indietro introdotti in Firefox 1.5 sono stati additati come la funzionalità più avida di memoria. Ma c'è una buona ragione: vengono tenute in memoria le ultime n pagine visitate in una scheda e quindi se si ha bisogno di navigare avanti e indietro le pagine verranno recuperate in modo più rapido dalla memoria che dalla cache del disco.

Browser.sessionhistory.max_total_viewers è il parametro (accessibile tramite about:config) che controlla quante pagine memorizzare. Per impostazione predefinita, il valore è -1 il che significa che Firefox decide in base al quantitativo totale di memoria presente nel sistema. Stando alla Knowledge Base di mozillaZine, questo valore è 3 per sistemi con 256 MB di RAM, 5 per 512 MB e 8 per 1 GB e più.

Per valutare la gravità dei problemi di memoria di Firefox 2 e quanto influisce la navigazione rapida tra le pagine, ho condotto un piccolo test:

  1. Ho creato un nuovo profilo e ho creato 8 pagine iniziali: un articolo di Wikipedia, YouTube, Amazon.com, eBay, Yahoo Games, Netvibes, News.com e Apple.com.
  2. Ho misurato il totale della memoria in uso all'avvio.
  3. Quindi, in ciascuna scheda:
  • Su Wikipedia: ho cliccato su Main Page, e poi su Featured Content.
  • Su Netvibes: ho espanso Featured Feeds, ho cliccato su CNN Money, l'ho chiuso poi ho cliccato sulla prima notizia da USA Today.
  • Su Amazon.com: Libri, Your Account, See all 41 categories, Software.
  • Su eBay: eBay express, Computers & Netwokring, IBM/Lenovo, sono sceso fino a cliccare l'ultimo elemento (un x60).
  • Su YouTube: Videos, Top Rated (Cat fight Rosie vs Elizabeth), Community.
  • Su Yahoo Games: Video Games, ho aperto il trailer di Halo 2 (una nuova scheda), View Red Carpet e l'ho lasciato andare.
  • Su Apple.com: Store, MacBook from 1099$.
  • Su CNet: Tips and Tricks (in alto), Home Entertainment (a lato).
4. Ho misurato di nuovo la RAM.
5. Ho chiuso quattro schede e l'ho misurata ancora.

Quindi, ho modificato il valore browser.sessionhistory.max_total_viewers a 0, ho azzerato la cache e ho rifatto il test. Infine, ho condotto le stesse prove con Firefox 1.0.8. Ecco i risultati:

MisurazioneFirefox 2 base
Firefox 2 personalizzatoFirefox 1.0.8
All'avvio89.688 KB90.800 KB85.600 KB
Dopo la navigazione120.660 KB114.804 KB107.088 KB
Dopo la chiusura di 4 schede96.924 KB80.044 KB

72.808 KB

Da queste cifre, sono giunto a queste due conclusioni:

  • Firefox 2 utilizza più memoria della serie 1.0.x
  • Il parametro max_total_viewers riduce notevolmente la differenza dell'utilizzo della memoria tra Firefox 2 e la 1.0.x
Inoltre posso dire che la disattivazione della navigazione rapida influisce pochissimo nell'esperienza web. Quando ho iniziato a scrivere questa serie di articoli mi sono reso conto che l'avevo disattivata già da qualche tempo, il che spiegava il fatto che avevo raramente dei problemi di memoria e non potevo lamentarmi delle prestazioni dei pulsanti Avanti/Indietro, anche se è davvero più rapida con l'impostazione predefinita.

Dall'ultima esperienza posso anche dire che la differenza tra Firefox 2 con l'impostazione personalizzata e quella con l'impostazione nativa tende ad essere ancor più profonda rispetto a quanto suggeriscono i miei risultati: in una situazione reale ci sono più schede aperte,
più Avanti/Indietro, più chiusure e aperture di schede. Credo che lo stesso valga in un paragone tra Firefox 1.0.x/2.x ma i miei test non hanno mostrato enormi differenze, specialmente con il parametro max_total_viewers modificato.

Nessun commento: