Come ottimizzare Firefox sul Mac

Come ottimizzare Firefox sul Mac

Le ultime versioni di Firefox, uno dei browser più diffusi in ambito web developing e non solo, sono diventate spaventosamente lente: questo mi sembra confermato dall’utilizzo che ne faccio abitualmente per le mie attività, ed ho spulciato un po’ il web alla ricerca di informazioni utili in merito.

Presupposti tecnologici: risorse e thread

Il S.O., per quanto ne “sa”, cerca di orchestrare al meglio tali processi, ma ovviamente più questi ultimi sono numerosi ed esigenti in termini di richieste di CPU, RAM, connessioni di rete e disco rigido, peggio è. Firefox è un programma in esecuzione sulla macchina esattamente come potrebbe esserlo una qualsiasi altra app per Mac (iPhoto, Libre Office e così via), senza contare i processi in backuground che garantiscono il funzionamento di tutto quello che usiamo nel sistema senza nemmeno farci caso.

Bisogna fare una premessa: ogni scheda che apriamo nel browser rappresenta (in prima approssimazione) un thread in esecuzione sulla vostra macchina (mi riferisco ad un Mac, nello specifico, ma la sostanza non cambia per gli altri sistemi operativi). Per chi non lo sapesse un thread è un processo che funziona parallelamente ad altri, mediante opportune politiche spazio-temporali di memoria e CPU, in un mix di settaggi imposti in parte dal sistema operativo (OS/X), in parte dall’applicazione stessa (Firefox).

Passo 1, check della memoria

Tempo fa discutevo con un amico di come sia incredibile, per quanto reale, questo problema: un browser, di quelli che con Java puoi farti da solo in una decina di righe di codice (in forma basilare, quantomeno), arrivava sul mio Mac ad occupare circa 800 MB di memoria. Un’enormità se si pensa che il Finder – il “Gestione Risorse” di OS/X, per i windowsiani – ne occupa mediamente 500/600 circa, a seconda dei casi. Aprendo la scheda di monitoraggio attività (all’interno del vostro sistema operativo Mac OS/X) questo è uno schema di un Firefox in esecuzione assieme ad altri processi (e programmi) in questo preciso istante. Non potevo crederci: 806 MB di memoria occupati, a momenti 1 GB di RAM dopo una comunissima giornata di lavoro.

ehm firefox

C’è da dire che, in prima istanza, i plugin che tanto amiamo – in particolare quelli che occupano più risorse, a seconda dei casi – possono essere una prima causa del rallentamento del browser: giusto come prova, in effetti avviando Firefox senza plugin sono apparentemente riuscito a dimezzare la memoria richiesta (vedi screenshot).

Schermata 2013-07-18 alle 01.21.43

La guida ufficiale in merito afferma che “many web pages have content you don’t really need“, per cui si suggerisce di bloccare l’inessenziale, legando il problema del rallentamento alla tipologia di siti che consultiamo, spesso dei veri e propri mattoni che possiamo “alleggerire” utilizzando:

  • Adblock Plus per bloccare gli annunci pubblicitari ed i popup;
  • Flashblock per filtrare i contenuti in Flash (attenzione che alcuni video in streaming potrebbero non vedersi);
  • NoScript per filtrare selettivamente i contenuti in JS (anche qui, adottare con cautela).

Fin qui il discorso sembra reggere teoricamente, e possiede utilità pratica visto che disattivare i plugin (meno che mai Javascript o Flash) è spesso impossibile, per via dell’uso stesso che facciamo dei siti (ad esempio non posso disattivare JS che serve per far funzionare quasi tutti i siti, tantomeno potrei mai rinunciare a Firebug e ad altri suoi plugin per webmaster). Che fare allora?

Passo 2: limitare l’utilizzo di cache e cronologia

Nel mio Firefox conservavo tutto in modo maniacale, visto che sono molto disordinato con i bookmark e preferisco lasciare tutto salvato nella cronologia, specie quando divido le attività su più giornate: questo approccio è molto time-consuming oltre che resource-consuming, per cui conviene limitare l’uso di cache e cronologia.

Da Mac, cliccare su Firefox->Preferenze e poi su Privacy->Cronologia:

Schermata 2013-07-18 alle 01.32.02

Da “Impostazioni Cronologia” dobbiamo quindi selezionare “utilizza impostazioni personalizzate“, ed aprire dalla schemata successiva un menù nel quale potreste spuntare l’opzione “cancella cronologia alla chiusura di Firefox“. Attenzione che questo approccio toglie di mezzo qualsiasi sito abbiate visitato senza salvarlo ad ogni chiusura di Firefox: personalmente trovo questa scelta valida solo in casi estremi, nel mio caso è ancora impraticabile, ad esempio.

Quello che possiamo fare senza dubbio è togliere di mezzo la cache che si accumula, per farlo basta fare in questo modo.

  1. Dalla barra dei menu fare clic sul menu Firefox e selezionare Preferenze….
  2. Selezionare il pannello Avanzate.
  3. Fare clic sulla scheda Rete.
  4. Nella sezione Contenuti web in cache fare clic sul pulsante Cancella adesso.
  5. Eventualmente possiamo pensare di limitare la cache ad es. a 300 MB al massimo.

Passo 3: verificare che l’accelerazione hardware funzioni

Di solito questa feature è abilitata, per verificarlo seguire le istruzioni riportate qui.

Passo 4: ricorrere ad una serie di impostazioni avanzate che potete accedere digitando about:config sulla barra degli indirizzi (solo per utenti esperti).

  1. digitare about:config
  2. impostare questi parametri chiave/valore cercandoli uno per volta:
    • browser.sessionhistory.max_entries = 25 – indica il “maximum number of pages in the browser’s session history, i.e. the maximum number of URLs you can traverse purely through the Back/Forward buttons. Default value is 50.
    • browser.sessionhistory.max_total_viewers = -1 , default -1 (calcolato in base alla memoria RAM disponibile), Determines the maximum number of content viewers to cache for “bfcache” (fast back/forward navigation)
    • network.http.pipelining = true – default false (abilita il pipelining HTTP 1.1, che permette di abilitare un socket di richieste da inviare parallelamente al server, in modo da velocizzare le connessioni, senza contare che The act of pipelining the requests can result in a dramatic improvement in page loading times, especially over high latency connections)
    • network.http.pipelining.maxrequests = 4 – che come è “facile” immaginare Determines the maximum number of HTTP requests in the pipeline, default 4.
    • browser.cache.memory.enable = true, deve essere così di default

    (fonte)

Anche dopo questi ultimi provvedimenti, rimane un’occupazione di memoria del browser ancora decisamente eccessiva, tra i 400 ed i 500 MB che è comunque molto meglio di quanto avessimo all’inizio. Potete testare questi suggerimenti e proporne di ulteriori nei commenti, io nel frattempo aggiornerò l’articolo se dovessi trovare altre strategie attuabili.

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.