Acelera Firefox-3.x al optimizar su DB
Firefox a partir de su versión 3.0 utiliza la base de datos SQLite para almacenar toda nuestra información de usuario, en ella se guardan los marcadores, el historial, las cookies, contraseñas, suscripciones RSS, etc. Lo anterior implica algunas ventajas, pero también desventajas debido al crecimiento de la base de datos con el tiempo de uso, que al crecer se fragmentan afectando el rendimiento de Firefox. En este artículo veremos pues, la manera de solucionar estos problemas entre otros, como el mismo tamaño límite del histórico y la adopción de la nueva versión.
Quienes me han leído desde hace algún tiempo sabrán de mi búsqueda por un navegador ligero, que satisfaciera mis necesidades y gustos. En esa búsqueda, instalé y probé una cantidad de navegadores por demás basta, sin embargo en todos los casos, siempre regresé a Firefox por que me brinda muchas ventajas válidas para mi por sobre otros. Incluso como usuario de la distribución libre gNewSense, que por cierto, he cumplido poco más de un año trabajando con ella, uso IceCat como uno de los navegadores libres posibles, es un ligero debido en gran parte a la eliminación de componentes privativos, pero idéntico en funcionamiento a Firefox.
Por otra parte, algunas personas me han sugerido el uso de otro navegador más rápido y efectivamente, hay otros que superan a Firefox en velocidad, sin embargo, sometí a algunos de ellos a pruebas de funcionamiento y aprendí un poco de ellos y su funcionamiento; coincido con la gente de Acid-Tests: «Los navegadores son como una competencia de corredores portando un cubo con agua, algunos llegarán primero con medio cubo de agua, otros después con el cubo casi lleno, otros al final, quizá con el cubo lleno». Lo importante en estos días es que ahora si, la carrera es bajo las mismas normas para todos, y por supuesto todos están de acuerdo, incluso, si acaso es honesto, también el reticente de siempre. En esa competencia con diferentes estrategias y técnicas, unos días aventajan unos, aveces otros. En los siguientes enlaces encontrará algunos test de prueba que ayudarán a comprenderlo mejor.
1. Optimizar la BD de SQLite con VACUUM
Existe una extensión Vacuum para Firefox 3.5+, sin embargo, por una parte, decidí escribir la optimización manual considerando a quienes ya tienen instalado SQLite en su sistema; por otra, que entre menos extensiones le instalemos a nuestro navegador Web trabajará más rápido.
- 1.1. Ejecutando script manualmente
- 1.2. Automático con la extensión Vacuum Places 2
El comando VACUUM:
Cuando un registro se elimina de la base de datos, deja el espacio vacío. Este espacio vacío se volverá a usar la próxima vez que se añada nueva información a la base de datos. Pero, mientras tanto, el archivo de base de datos podría ser mayor de lo estrictamente necesario. Además, si se insertan frecuentes actualizaciones y eliminaciones, pueden causar que la información en la base de datos se fragmente en todo el archivo en lugar de agruparse en un solo lugar. Para ello, el comando VACUUM limpia la base de datos principal copiando su contenido a un archivo temporal y vuelve a cargar el archivo de base de datos original desde esa copia. Esto alinea la tabla de datos para hacer contiguos los registros, y la estructura de archivos de la base de datos.
Observación:
Los usuarios que hagan uso de muchos marcadores y feeds RSS tendrán una notable reducción, mientras que los usuarios que no los utilizan, o sólo de vez en cuando, verán poca o ninguna mejoría.
Instalación de SQLite3:
Por defaul Firefox maneja sus bases de datos SQLite internamente. Así que, nuestro sistema no cuanta con el paquete SQLite (excepto por instalación manual previa, o automática por necesidades de otro paquete), por lo tanto, podríamos tener disponible o no el comando VACUUM. Lo podemos chequear directamente desde consola intentando su instalación con la siguiente línea, si no existe se instalará.
Desde línea de comandos…
sudo apt-get install sqlite3
Advertencia:
Para ejecutar VACUUM deberá estar cerrado Firefox.
1.1. Ejecutando script manualmente
El procedimiento para optimizar SQLite es muy sencillo, desde línea de comandos nos paramos en ~/.mozilla/firefox[-X.X]/*default (en donde [-X.X] puede ser nada o puede ser su versión -3.014 o -3.5 por ejemplo), luego hacemos para cada «archivo.sqlite» lo siguiente…
sqlite3 archivo.sqlite VACUUM
¡Sencillo verdad! Lo tedioso sería hacerlo para cada «archivo.sqlite», pero lo podemos evitar creando un archivo con el script de trx64 (Gracias por tu aporte) el cual chequea si existe SQLite3, y si esta cerrado Firefox. Abrimos un archivo nuevo con GEdit, pegamos las lineas siguientes y lo guardamos como «ff-dbsql.sh»
#!/bin/sh # By trx64 in Mozillalinks if [ `whereis sqlite3 | grep -c /` -lt 1 ] then echo ‘Es necesario tener instalado Sqlite3’; echo ‘\tsudo apt-get install sqlite3′; exit 2; fi if [ `ps aux | grep -c /usr/lib/firefox` -gt 1 ] then echo ‘Cierre Firefox para correr este script’; exit 1; else echo ‘Optimizando la base de datos de Firefox…’; echo ‘Esto puede tomar un tiempo…’; for i in ~/.mozilla/firefox*/*/*.sqlite; do sqlite3 $i vacuum; done; echo ‘Optimización exitosa’; exit 0; fi
Una vez guardado, lo hacemos ejecutable. Para ello, desde línea de comandos y en la carpeta donde se guardó hacemos:
Chmod +x ff-dbsql.sh
Ahora, podemos ejecutar el script cada que sea necesario, o lo damos de alta en nuestras Aplicaciones de inicio de Sistema.
1.2. Automático con la extensión Vacuum Places 2
Simplemente instale la extensión para Firefox: Vacuum Places Improved y en Preferencias marque una de dos acciones:
- a. Manual: Aviso después de 30 aperturas desde la última limpieza
- b. Automático: después de 50 aperturas desde la última limpieza
2. Limitando el Historial de Firefox
Limitar el número de días de permanencia de las páginas en el historial, así como el número de páginas almacenadas en la base de datos.
El navegador Firefox guarda sitios web visitados por un mínimo de 90 días y un máximo de 180 días en el historial por defecto. Cuando el historial alcanza los límites de 40,000 entradas se borra de la base de datos que contiene todos los registros. Los usuarios que han experimentado inicios lentos, pueden acelerar Firefox mediante la limitación del historial de la siguiente manera: Abrir una nueva pestaña del navegador web y cargar la página [about:config]. Ahora filtrar con el término [browser.history] y localizar los tres parámetros siguientes:
- Browser.history_expire_days: Es el máximo de días que Firefox almacenará páginas web en la base de datos del historial. (por defecto 180)
- Browser.history_expire_days_min: Es el mínimo de días que Firefox almacenará páginas web en la base de datos del historial. (por defecto 90)
- Browser.history_expire_sites: Define el límite máximo de los sitios web que se almacenan en el historial de Firefox. Reducir la cantidad de 40000 a un valor más bajo puede ayudar mucho.
La reducción tanto de los valores mínimo y máximo a un número menor puede mejorar el rendimiento del navegador, especialmente durante el inicio. No hay valores óptimos lo que significa que el usuario tiene que experimentar un poco para encontrar los valores más adecuados para su navegación. Los valores sugeridos son 7,14,28 o 56 días para ambos parámetros. Los usuarios que quieren deshacerse del historial completamente deben utilizar 0 como el valor en ambos casos.
Modificados los parámetros es necesario reiniciar Firefox, pero antes, optimizar nuevamente la base de datos con VACUUM como se indica en el punto anterior para garantizar que la base de datos no esté fragmentada debido a estos cambios.
3. Pasando de ff-3.xx a la versión 3.5 de Firefox
A esta versión 3.5 de Firefox le caracteriza una diferencia notable en su rendimiento para beneficio nuestro. Por ejemplo en mi maquina, la diferencia de velocidad_/1 rendimiento entre la versión 3.014 y la 3.5.3, es de 22 por cien (22/100) más rápido, lo apreciarán en las siguientes imágenes:
_/1 He sustituido «velocidad» por rendimiento debido al siguiente razonamiento, si bien es cierto puedo apreciar diferencias de tiempo de renderizado, me es imposible determinarlo y mucho menos, con una diferencia del 22 por cien.
Rendimiento del 70 por cien:
Rendimiento del 92 por cien:
Saludos
Completa esta lectura con:
Si te gustó este post, por favor considera dejar un comentario o suscribirte al feed y obtener artículos futuros en tu lector de feeds.
Comentarios (4)
[...] This post was mentioned on Twitter by Ariel. Ariel said: Nuevo Post en La Consola, puedes leerlo aqui: http://bit.ly/1zaSaq [...]
Un escribano. De manera tácita para mi lo es y me explico: Dice Acid3 que pone a prueba mi navegador con los estándares web, que consisten en un montón de subpruebas, pero además mi navegador deberá renderizar una página y deberá hacerlo de manera tersa y fluida en máximo 33 milisegundos.
Sin embargo, he corregido la parte final del artículo.
Gracias y un saludo































































Muy buen artículo, aunque tengo que apostillar un aspecto del mismo: el test Acid3 no mide el rendimiento de un navegador sino la compatibilidad del mismo con los estándares web.