Mejorando la velocidad de Firefox

Desde Firefox 3.0 que, los bookmarks, la historia, en definitiva aquello que requiera almacenamiento en disco, es almacenado en bases de datos. Estas bases de datos son gestionadas por SQLite. Lo cual es un punto interesante para la velocidad.

Otro punto en la ecuación, es que el marco de tiempo por defecto para la historia fue incrementado desde 9 a 90 días, lo que potencia la “awesome bar” y sus capacidades de encontrar cosas.

El problemas es que si eres de los que navega un montón, muy (demasiado?) rápidamente podrías tener unas bases de datos de tamaño “interesante”. Como cualquier base de datos, las bases de datos en SQLite tienden a fragmentarse con el uso y “espacios en blanco” aparecen por todas partes. Lamentablemente, aún no existen procesos de adminstración, chequeo y administración para estas bases de datos, es decir, Firefox en un corto plazo podría ver su performance seriamente afectada. De hecho yo lo viví, no tanto con la carga misma de Firefox, pero si al iniciar a escribir en la awesome bar.

Pero no todo está perdido! Una buena manera de optimizar esto es realizando manualmente el proceso de mantención de las bases de datos (eliminar los “espacios en blanco”), y esto lo podemos hacer más o menos fácilmente:

1- Descargar sqlite3 (la mayoría de las distros linux lo instalan para otros de sus componentes por lo que pueden saltarse este paso). sqlite3 es una herramienta de administración de bases de datos basada en línea de comandos, disponible para (Linux, Windows y Mac OS X)

2- Copia el binario descargado a tu profile, que es donde todos los .sqlite residen, o a un lugar dentro de tu $PATH.

3- Copia estas instrucciones en un bloc de notas o similar.

4- Cierra Firefox.

5- Desde una línea de comandos o prompt dirigete a tu profile y ejecuta el siguiente comando:

sqlite3 [SQLite database] VACUUM

reemplazando [SQLite database] con el nombre de un archivo SQLite, por ejemplo places.sqlite.

En Windows, para defragmentar todas las bases de datos  SQLite databases con un solo comando:

for %a in (*.sqlite) do (sqlite3 %a vacuum)

En Linux

ls -1 *.sqlite | while read db; do sqlite3 $db VACUUM; done

En mi T43 corrí el script y obtuve una mejora de como 5 segundos de carga!

Antes

[casep@t43 ~]$ time firefox
real    0m22.331s
user    0m8.126s
sys    0m1.045s
[casep@t43 ~]$ time firefox
real    0m20.696s
user    0m7.954s
sys    0m0.993s

Después

[casep@t43 ~]$ time firefox
real    0m15.071s
user    0m6.559s
sys    0m0.753s
[casep@t43 ~]$ time firefox
real    0m14.360s
user    0m6.331s
sys    0m0.788s

Bueno, y si es tan maravilloso, por qué no se hace automáticamente? El principal problema es que requiere que Firefox esté cerrado, por lo que aún no se ha encontrado una manera elegante de hacerlo, una de las propuestas es incluirlo como parte del proceso de update (que ya hace mandatorio el cierre y que ocurre en un buen marco de tiempo, unas 6 semanas), qué se les ocurre a ustedes como mecanismo?

Así que a probar y posteen como comentarios sus tiempos!

Comparte: Agrégalo a Del.icio.us
Post a comment or leave a trackback: Trackback URL.

One Trackback

  1. [...] se recuerdan acá les contaba cómo mejorar la velocidad en Firefox. Si tienen aún mejor memoria recordarán que uno [...]

Post a Comment

Your email is never shared. Required fields are marked *

*
*

Twitter Users
Enter your personal information in the form or sign in with your Twitter account by clicking the button below.