[Firefox4] Mejoras en el arranque

20 diciembre, 2010 7:00 por

Admitámoslo, Firefox siempre ha sido un navegador lento al abrirse, mejorando con cada versión (aunque la fama ha quedado ahí, como la del consumo de memoria, totalmente falsa) pero sin igualar a navegadores más nuevos, como Safari o Google Chrome.

Pero Mozilla se ha puesto las pilas en esta nueva versión, realizando una serie de cambios importantes para mejorar el arranque, y que el usuario note menos espera entre que hace clic en el icono y ve su navegador totalmente funcional.

Omni.jar

Captura del archivo Omni.jar

Un poco de historia. Firefox tiene una estructura, en la cual para cada arranque tenía que abrir diferentes archivos .jar (que son archivos ZIP, como los comprimidos, pero sin compresión. Podríamos describirlos como un simple contenedor de archivos) pero que tenía sus limitaciones. Sobre todo, que tenía que abrir archivos dentro de la carpeta «components» que son como módulos (de navegación privada, criptográficos, de sincronización, de sesión…). Y estos archivos estaban por separado, por lo cual tenía que abrir cientos de archivos en total, y una de las premisas de los ordenadores es que la lectura de disco duro es tremendamente lenta (comparada con otras operaciones). Por lo cual, cuanto menos leamos, más rápidos seremos en terminar el arranque.

Omni.jar viene a solucionar esto. Ya que es un archivo que empaqueta la mayoría de los archivos de arranque, haciendo una sola lectura de archivo y extrayéndolos en la memoria vía CPU (el uso de CPU es minúsculo comparado con el tiempo de leer varios cientos de archivos), lo que acelera enormemente el arranque. Además, este formato de archivo está listo para más optimizaciones (leer en primer lugar lo primero que se necesita e ir usándolo y continuar en otro hilo con la lectura de más archivos, con lo que el arranque podría ser incluso mejor).

Según un artículo del desarrollador mwu, pasamos de leer 259 archivos a sólo 61, un 76.4% menos de archivos.

Extensiones sin descomprimir

extensiones

Si miras tu perfil de Firefox (3.6 o anteriores) verás que tienes una carpeta llamada «extensions» que si entras puedes ver normalmente una serie de carpetas con nombres o bien con números y letras totalmente indescifrables. Si abres cualquiera de esas carpetas verás que se trata de una extensión y que tiene… ¡más archivos! Más archivos que hay que leer al abrir Firefox, lo que puede hacer que el arranque sea más lento.

Entonces, los desarrolladores pensaron en… si al instalar las extensiones descargamos un único archivo, ¿por qué no lo dejamos como tal y usamos lo mismo que con omni.jar, abriendo el archivo al vuelo al arrancar? (recordemos, que el uso de CPU por descomprimir un archivo en memoria es irrisorio comparado con tener que abrir decenas de archivos en un disco duro).

Y eso han hecho. En la mayoría de las extensiones que instales en Firefox 4 (hay algunas que necesitan descomprimirse) verás que tendrás un archivo .xpi en vez de un directorio (de hecho, este directorio sería la descompresión del .xpi que ahora está en modo paquete. Y sí, de nuevo el .xpi es muy parecido al .jar, un archivo .zip sin compresión).

Este es otro punto más en el tiempo de arranque, ya tenemos dos, pero muy técnicos, vayamos a otro más visible.

Pestañas al estilo BarTab

En Firefox 3.6 y anteriores, cuando abrías de nuevo una sesión en tu navegador y tenías decenas de pestañas guardadas de tu sesión anterior, lo que ocurría es que todas se cargaban y todas lo hacían a la vez, por lo que normalmente tenías que esperar varios segundos hasta que veías la ventana del navegador y empezaba a responder de forma adecuada a lo que le pedías.

Esto se ha cambiado en Firefox 4, tomando la idea de una genial extensión llamada BarTab (que está para Firefox 3.6 y anteriores, por si queréis probar). Lo que ahora hace Firefox es: cuando abres el navegador y tienes muchas pestañas, da prioridad de carga a la pestaña que esté seleccionada (ya sea la primera, la última o la que sea) y además, sólo carga 3 pestañas (por defecto) cada vez, por lo que la respuesta es mayor.

Para los manitas: la preferencia para cambiar esto es browser.sessionstore.max_concurrent_tabs dentro de about:config. Si lo ponéis a 0, sólo cargará la pestaña seleccionada actualmente, las demás no cargará hasta que pinches sobre ello. Si pone un valor mayor que 0, cargará a la vez el número que hayáis puesto: 1, 2, 3… pestañas a la vez.

Como veis, se han hecho cosas para mejorar el proceso de arranque, para que sea más rápido (se han quedado cosas en el tintero, como uso de mejores asignaciones de memoria, compiladores más nuevos, mayores optimizaciones, uso de software más nuevo como SQLite), pero lo principal son estos 3 puntos que se comentan en el artículo, que esperamos sean (sobre todo el tercero) el que más tiempo os mejores el arranque.

The following two tabs change content below.

willyaranda

Miembro pasivo at Mozilla Hispano
Empecé con Mozilla cuando tenía 17 años, traduciendo NVu, ahora, con unos cuantos más, y tras haber pasado por asistencia, administración técnica, más traducción, dar charlas de Mozilla, haber aprendido mucho par ala web, estoy involucrado en FirefoxOS, tanto con mi gorra Mozillera de siempre como una nueva como empleado de Telefónica I+D. La web es la plataforma.

Compartir artículo:

cc-by-sa