Rendere Firefox più reattivo del 27% in avvio

Tempo fa avevamo parlato di una patch per Linux che lo rendeva più reattivo modificando il comportamento di alcune componenti delle console virtuali.

Sembra che una patch simile sia applicabile anche a Firefox, per renderne più veloce l’avvio. Ne ho letto proprio oggi la notizia: http://feedproxy.google.com/~r/linuxfeed/~3/-BKHIqXTxkU/una-patch-miracolosa-per-diminuire-il-tempo-di-avvio-di-firefox.html

La Patch si applica ad un sorgente di Firefox, ma il mio occhio da programmatore ha subito visto che il file Mozilla.in (soggetto alla patch) contiene lo script batch che carica Firefox dalla posizione in cui viene installato.

Pertanto l’idea è stata subito di applicare la modifica senza attendere un rilascio del binario di Firefox…e sperimentare se è vero questo comportamento.

Andiamo a cercare dove si trova il file eseguibile di Firefox sul nostro sistema: il file si chiama firefox ed è uno script shell. Nella stessa directory si trova firefox.bin e run_mozilla.sh. Se avete installato firefox come segnalato in questo blog, il percorso è su /option/firefox3

Apriamo il file e andiamo alla fin:

if [ $debugging = 1 ]
then
echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
exitcode=$?
 
exit $exitcode
# EOF.

e aggiungiamo questa riga:

cat "$dist_bin"/*.so > /dev/null 2>&1

in modo da ottenere:

if [ $debugging = 1 ]
then
echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
fi
cat "$dist_bin"/*.so > /dev/null 2>&1
"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
exitcode=$?
 
exit $exitcode
# EOF.

Se guardiamo la riga incriminata, capiamo subito quale è il suo funzionamento: si concatena l’output di tutte le libreria caricate da Firefox (*.so) e le si getta nel vuoto: evidentemente basta questa azione di lettura delle librerie (un pre caricamento quindi) per rendere poi l’eseguibile di Firefox più veloce.

Ma funziona?

Ho fatto un test: Firefox 3.6.13 con 28 tabs fissi in apertura (rilevando i tempi nel momento in cui appariva la schermata di Firefox e i iniziava a scaricare i siti) ed ho ottenuto

  • 17,60 secondi senza patch
  • 13,64 secondi con la patch

Quindi un 23% di incremento di velocità di apertura.

E’ un caso?
Funziona realmente?

Beh, provare non costa nulla, modificate una riga di codice e al massimo tornate indietro 😉

Magari postate i vostri risultati specificando la versione di Firefox usata, così da avere una statistica 🙂

3 Risposte a “Rendere Firefox più reattivo del 27% in avvio”

  1. Ciao, seguendo la tua guida ricevo il seguente errore; /usr/lib/firefox-3.6.14/firefox: 139: Syntax error: “&” unexpected
    Forse un errore di formattazione testo???

  2. ciao,
    hai ragione: wordpress ha automaticamente variato il codice inserito perchè lo ha ritenuto html.
    Grazie della segnalazione

    la sintassi correttà è questa:

    cat “$dist_bin”/*.so > /dev/null 2>&1

    vedo se riesco a fargliela digerire anche nel testo, altrimenti fate riferimento alla riga qui sopra

  3. Provato ora sul netbook, sempre con Firefox 3.6.13. Il boot di Firefox avviene mediamente in 3,6 secondi e non noto differenze misurabili nei tempi di avvio con o senza patch.

    La motivazione potrebbe essere nei dischi SSD montati sul portatile che garantiscono un tempo costante di accesso al disco. Infatti si argomenta nel blog in lingua inglese di chi ha sperimentato questa patch che l’effetto del miglioramento sia dovuta alla riduzione dei tempi di caricamento dati dalla lettura ordinata delle librerie, rispetto a quelle dettate da Firefox durante l’avvio (che provocano una inevitabile tempo di seek della testina del disco rigido per saltare da un file all’altro)

    Ovviamente servono altri dati per confermare o meno la validità di questo metodo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.