viernes, 16 de junio de 2017

Firefox hace historia con su primera versión con multiproceso, dejando en ridículo a Chrome

Por fin, ya está aquí. El proyecto conocido como E10S ( Electrolysis) nació para modernizar el navegador que en su momento había sido el único capaz de enfrentarse a Internet Explorer. Un proyecto que no iba a cambiar nada a simple vista, sino que cambiaría completamente el funcionamiento interno.
No era una tarea pequeña. El código de Firefox ya tenía demasiados años encima, de antes de que los procesadores tuviesen tantos núcleos, antes de que la multitarea fuese algo más que un concepto interesante.
Convertir Firefox a un esquema multiproceso suponía reescribir mucho código, tener en cuenta la compatibilidad con mucho software, y sobre todo, que al final el usuario sólo se diese cuenta de la mejora.

Ya disponible la versión de Firefox con multiproceso

Hoy, Mozilla lo ha conseguido. Firefox 54 es la primera versión estable del navegador basada en el multiproceso. Eso significa que, a partir de ahora, cada pestaña tendrá su propio proceso independiente, y podrá ser asignado a cada núcleo por el sistema.
Esto tiene muchas ventajas, como ya ha demostrado Chrome; permite meter contenido en un “sandbox”, que no afectará al resto de pestañas ni al sistema. También permite tener muchas pestañas abiertas al mismo tiempo, cada una trabajando de manera independiente. Si una se bloquea por cualquier motivo, no afectará al resto. O al menos, esa es la idea.
Entonces, ¿el multiproceso de Firefox es igual a lo que ya tiene Chrome? No exactamente. Mozilla ha aprovechado este tiempo para idear un tipo de multiproceso diferente y mejor.
El mejor ejemplo lo vemos en la manera en la que ha solucionado el mayor fallo del multiproceso: el consumo de memoria.

Firefox consigue multiproceso sin comerse toda tu memoria

Chrome
El consumo de memoria de Chrome ya es legendario, se ha convertido en todo un meme; da igual lo que hagamos, cuánta memoria RAM tengamos, Chrome se la “comerá”. Y todo es porque, por cada pestaña, Chrome crea un nuevo proceso para el contenido y un nuevo motor.
En cambio, Firefox intenta ser más inteligente, y reutiliza procesos y motores en las pestañas abiertas. Por defecto, las cuatro primeras pestañas que abrimos recibirán sus propios procesos; pero las pestañas siguientes que abramos serán asignadas a los procesos ya abiertos.
Las pestañas que han sido asignadas a cada proceso tendrán su propio motor, que ya está en memoria; así que no hay que crear exactamente lo mismo para cada nueva pestaña creada.
La reducción en el consumo de memoria comparado con la competencia es bastante evidente; sobre todo si tenemos menos de 8 GB de memoria.
De esta manera, puede conseguir los beneficios del multiproceso con los del proceso tradicional. Además, tiene más sentido; la mayoría de la gente no tiene procesadores de 16 núcleos, así que no tiene sentido crear 16 procesos, uno para cada pestaña.
Este es un sistema fácilmente ampliable, y de hecho podemos tocar la configuración si queremos cambiar la cantidad de pestañas que recibirán procesos propios.

Personalizable y cambiante, la gran apuesta de Mozilla

Esa es la otra gran diferencia respecto a Chrome: que tenemos mucha más libertad para cambiar la manera en la que el navegador funciona. De hecho, Mozilla recomienda que, si tienes más de 8 GB de memoria, aumentemos la cantidad de procesos.
Para cambiarlo, por el momento tenemos que abrir una nueva pestaña e introducir “about:config”; tenemos que cambiar el valor “dom.ipc.processCount”. En futuras versiones, podremos cambiar este valor desde el menú de configuración de Firefox.
Este es el paso más importante que Firefox ha dado; hasta Mozilla presume de que es la mejor versión del programa en su historia. Es pronto para decir eso, pero lo que es seguro es que cambiará las cosas. Y es solo el principio, para los próximos meses también se espera una renovación completa en la interfaz.