Passer au contenu

Bientôt un moteur de rendu de nouvelle génération dans Firefox

La fondation Mozilla veut s’appuyer sur la programmation parallèle pour booster les performances de son navigateur web. Une première version devrait être lancée en 2017.  

Alors qu’une version plus performante de Firefox, basée sur l’architecture Electrolysis, est en train d’arriver sur nos ordinateurs, Mozilla planifie déjà l’étape d’après. Et celle-ci s’appelle Quantum. Ce projet veut pousser la philosophie d’Electrolysis jusqu’au bout. Pour rappel, cette architecture technique permet de subdiviser le processus du navigateur en plusieurs sous-processus, chacun prenant en charge une ou plusieurs pages web. Cette répartition des tâches permet de gagner sensiblement en performance.

L’objectif du projet Quantum est de remplacer l’actuel moteur de rendu Gecko par un moteur de rendu de « nouvelle génération ». Celui-ci serait capable de faire tourner un maximum de ses modules logiciels en mode de calcul parallèle, que ce soit en s’appuyant sur les multiples cœurs du processeur ou sur les capacités de la puce graphique d’un PC. Bref, l’idée est de mettre du calcul parallèle à tous les étages pour augmenter encore davantage la performance d’affichage et ainsi améliorer l’expérience utilisateur.

Profiter des avancées matérielles

« Les navigateurs sont apparus dans l’ère du PC. Ces premiers ordinateurs ne disposaient que d’un processeur monocœur (…) Ils ne pouvaient donc faire qu’une seule chose à la fois. Et même aujourd’hui, la plupart des navigateurs font encore tourner une page web dans un seul fil d’exécution (thread) sur un seul cœur de calcul. Mais aujourd’hui, nous surfons sur le web avec des téléphones, des tablettes et des ordinateurs portables qui ont des processeurs beaucoup plus sophistiqués », explique David Bryant, responsable Platform Engineering chez Mozilla, dans une note de blog.

Pour créer son nouveau moteur de rendu, Mozilla compte surtout piocher dans le projet expérimental Servo, dont le but est justement de créer un navigateur basé sur la programmation parallèle.  Ainsi, le module CSS de Gecko (en charge de la gestion des feuilles de style) sera remplacé par le module CSS de Servo, dont le code est d’ores et déjà fortement parallélisé. Idem pour le module de rendu graphique (WebRender) qui s’appuie sur les capacités de calcul parallèle des GPU.

Gestion des pages par multithreading

Le module de gestion des pages web, quant à lui, provient visiblement d’un développement nouveau. Baptisé Quantum DOM, il ne va pas répartir les pages dans différents processus comme Electrolysis, mais dans différents fils d’exécution de processus (threads). Ceci a pour avantage de ne pas générer une inflation de l’usage de la mémoire, comme c’est le cas lorsqu’on multiplie les processus.
En revanche, le multithreading contraint à une gestion fine des ressources mémoire partagées, pour éviter que tout se termine en chaos. C’est donc plus complexe à faire.

Théoriquement, les utilisateurs Firefox ne devraient pas attendre trop longtemps pour expérimenter ce nouveau moteur de rendu. Mozilla pense pouvoir diffuser les premières versions en 2017, pour Android, Windows, Mac et Linux. « Un jour, nous espérons pouvoir le proposer sur iOS aussi », ajoute David Bryant. Ça, en revanche, c’est loin d’être gagné.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.

Opera One - Navigateur web boosté à l’IA
Opera One - Navigateur web boosté à l’IA
Par : Opera

Gilbert KALLENBORN