Firefox 58 débarque le 23 janvier avec de nouveaux gains de performance
Grâce à la compilation en streaming et un nouveau compilateur à deux niveaux

Le , par Michael Guilloux, Chroniqueur Actualités
18/01/2018 : Il y a deux mois, Mozilla a lancé ce qui est sans doute la meilleure version de Firefox jamais développée, en termes de nouveautés introduites et gain de performance : Firefox 57 (Quantum). Avec cette version, Firefox est devenu plus rapide que six mois auparavant et est allé jusqu'à défier Google Chrome, non seulement au niveau de la performance, mais encore en ce qui concerne l'utilisation de la mémoire. Les tests de Mozilla montraient en effet que sur de nombreuses machines (en particulier celles avec des processeurs à plusieurs cœurs), Firefox était plus rapide que Chrome. D'autres tests également menés par l’éditeur de Firefox ont aussi montré qu'avec l'architecture multiprocessus, Firefox 57 consommait 30 % moins de RAM que le navigateur de Google.

Avec Firefox 58 qui sera officiellement disponible le 23 janvier, Mozilla veut continuer à augmenter les performances de son navigateur, en introduisant deux nouveaux changements, à savoir la compilation en streaming et un nouveau compilateur WebAssemby à deux niveaux. Avec la compilation en streaming, le navigateur compile le code pendant qu’il est en train d’être téléchargé. « Jusqu'à présent, c'était juste une accélération future potentielle. Mais avec la sortie de Firefox 58 la semaine prochaine, cela devient une réalité », explique Lin Clark de Mozilla, dans un billet de blog.

« Si vous commencez à compiler le code plus tôt, vous finirez de le compiler plus tôt. C'est ce que fait la compilation en streaming ... rendre possible de commencer à compiler le fichier .wasm dès que possible », a écrit Lin Clark. Le fait est que lorsque vous téléchargez un fichier, il ne vient pas en un seul morceau, mais plutôt en une série de paquets. Jusqu'à présent, lorsque chaque paquet d'un fichier .wasm était en cours de téléchargement, la couche réseau du navigateur le mettait dans un ArrayBuffer, comme cela est illustré ci-dessous. Une fois cela fait, l'ArrayBuffer est déplacé sur la VM Web (le moteur JS). C'est alors que le compilateur WebAssembly commence la compilation.

Mais d'après l'ingénieur de Mozilla, il n'y a aucune raison de mettre le compilateur en attente. Il est en effet techniquement possible de compiler WebAssembly ligne par ligne. Cela signifie que vous devriez être en mesure de démarrer la compilation dès que le premier paquet arrive, et c'est ce que fait le nouveau compilateur, qui tire parti de l'API de streaming de WebAssembly.


Firefox 58 inclut également un nouveau compilateur à deux niveaux, et le nouveau compilateur de base compile le code de 10 à 15 fois plus vite que le compilateur optimisant. D'après Mozilla, ces deux changements combinés signifient que Firefox compile le code plus vite qu'il n’est livré par le réseau.


Dans l'ensemble, les gains de performance résultant des changements sont assez impressionnants. Sur PC, Firefox va compiler 30 à 60 Mo de code WebAssembly par seconde, et sur mobile le navigateur va compiler environ 8 Mo par seconde. Cela veut dire que peu importe votre dispositif, vous devriez toujours profiter de gains de performance sur le Web.

En dehors des performances, il faut savoir que Firefox 58 sera la première version du navigateur à intégrer des correctifs de sécurité contre les attaques de type Meltdown et Spectre. À propos des nouvelles fonctionnalités, on peut également mentionner que la technologie WebVR est maintenant activée pour les utilisateurs de Mac OS X. Il y a aussi le support du remplissage automatique dans les formulaires pour les informations de carte de crédit et une optimisation du chargement des pages Web par la mise en cache de la représentation interne JavaScript. Firefox 58.0 améliore encore la vitesse de rendu des pages Web pour les utilisateurs Windows avec la technologie Off-Main-Thread Painting et la mise en cache JavaScript. Plus de détails sur les nouveautés seront donnés avec la sortie officielle de Firefox 58.

Mise à jour le 23/01/2018 : Firefox 58 est officiellement disponible

« Cette version est construite sur la grande fondation fournie par notre tout nouveau navigateur Firefox Quantum », a expliqué Mozilla lors de l’annonce de la sortie officielle de Firefox 58. « Nous optimisons les gains de performance que nous avons introduits dans Firefox 57 en améliorant le rendu des graphiques et la mise en cache JavaScript. Nous avons également apporté des améliorations de fonctionnalité et de confidentialité à Firefox Screenshots. » Il faut en effet noter que les captures d'écran Firefox fonctionnent maintenant en mode navigation privée. Il est également possible de les copier et coller directement dans votre presse-papiers.

Entre autres changements au niveau de l'expérience utilisateur, il faut aussi savoir que les profils utilisateur créés à partir de Firefox 58 ne seront pas pris en charge dans les versions précédentes du navigateur. Les utilisateurs qui rétrogradent vers une version précédente doivent donc créer un nouveau profil pour cette version. Côté développeur, on note entre autres l'implémentation de l'API PerformanceNavigationTiming et l'ajout de PerformanceResourceTiming.workerStart afin que les sites puissent mesurer le temps de démarrage des service workers.

Sur Firefox pour Android, Mozilla a ajouté la prise en charge des applications Web progressives (PWA) afin que vous puissiez ajouter des sites Web à votre page d'accueil et les utiliser comme des applications natives. On note en plus la prise de (Free Lossless Audio Codec).
Sources : Blog Mozilla, Notes de version Firefox 58 bêta, Notes de version Firefox 58

Et vous ?

Que pensez-vous des nouveautés et améliorations dans Firefox 58 et de la nouvelle direction empruntée par le navigateur de Mozilla ?

Voir aussi :

Firefox 58 ne permettra pas le pistage des internautes grâce à l'élément HTML Canvas, le navigateur demandera d'abord la permission de l'utilisateur
La bêta de Firefox 58 pour Android est disponible : support des progressive web apps, de FLAC et autres à découvrir


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de transgohan transgohan - Expert éminent https://www.developpez.com
le 18/01/2018 à 13:39
Ils n'ont pas de designer/graphiste chez Mozilla ?

Mais à part ça cela va dans le bon sens, je félicite la nouveauté.
Avatar de RyzenOC RyzenOC - Inactif https://www.developpez.com
le 18/01/2018 à 14:31
c'est utilisé WebAssembly ?
si vous l'utilisez pouvez faire un petit retour du pourquoi vous l'utiliser.

es ce que les programmes populaire (cms comme joomla...etc) l'utilisent ?
Avatar de Zefling Zefling - Membre expert https://www.developpez.com
le 18/01/2018 à 14:59
Citation Envoyé par RyzenOC Voir le message
c'est utilisé WebAssembly ?
si vous l'utilisez pouvez faire un petit retour du pourquoi vous l'utiliser.

es ce que les programmes populaire (cms comme joomla...etc) l'utilisent ?
C'est utilisable depuis pas très longtemps (Edge le supporte depuis peu)
CanIUse WebAssembly

J'ai pas trop eu le temps de me plonger dessus. Mais je pense que pour une techno qui à quelques mois d'activité, c'est dur de trouver des sites grand public qui l'utilise déjà, hors démo de ce genre : http://webassembly.org/demo/Tanks/ (Unity semble y être passé).
Avatar de RyzenOC RyzenOC - Inactif https://www.developpez.com
le 18/01/2018 à 15:48
Citation Envoyé par Zefling Voir le message
C'est utilisable depuis pas très longtemps (Edge le supporte depuis peu)
CanIUse WebAssembly
oui je le sais, mais tu ne répond pas à ma question.... y'en a qui l'utilise ?
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 18/01/2018 à 16:09
Citation Envoyé par RyzenOC Voir le message
c'est utilisé WebAssembly ?
Citation Envoyé par RyzenOC Voir le message
est-ce que les programmes populaire (cms comme joomla...etc) l'utilisent ?
Il n'est pas encore prêt pour être utilisé en production, mais les gens qui font de la veille technologique on commencé a voir ce qu'il pouvaient faire avec pour être prêt des que la technologie sera considérée stable.

Citation Envoyé par RyzenOC Voir le message
si vous l'utilisez pouvez faire un petit retour du pourquoi vous l'utiliser.
Pour le moment surtout par curiosité.
Avatar de beekeep beekeep - Rédacteur/Modérateur https://www.developpez.com
le 18/01/2018 à 19:38
unity 3d pourrait l'utiliser pour remplacer WebGL en export Web.
Avatar de onilink_ onilink_ - Membre éprouvé https://www.developpez.com
le 18/01/2018 à 19:55
Citation Envoyé par RyzenOC Voir le message
oui je le sais, mais tu ne répond pas à ma question.... y'en a qui l'utilise ?
Perso je l'ai utilisé un peu a des fins de test, avec emscripten, pour compiler du C++ (des petits jeux en SDL2/opengl/openal).
Ça a grandement amélioré les choses, avant un build emscripten d'un code sans dépendances pouvait prendre jusqu'a 1mo de js.
Avec webasm ça divise a peu près le poids en 10. Les temps de chargement sont bien plus rapide, et le code tourne plus vite (et pourtant c'était déjà pas mal du tout avant cela).

Bref c'est vraiment très intéressant pour tous ceux qui visent le web sans avoir a être forcé a faire du javascript (emscripten peut transpiler en webasm tout langage avec un backend llvm, ce qui donne beaucoup de possibilités).
Avatar de Zefling Zefling - Membre expert https://www.developpez.com
le 18/01/2018 à 23:31
Citation Envoyé par beekeep Voir le message
unity 3d pourrait l'utiliser pour remplacer WebGL en export Web.
Ça reste du WebGL au final, il me semble. C'est juste avec du Wasm et non du JS.

Exemple ici : Unity WebGL avec Wasm
Avatar de frfancha frfancha - Membre confirmé https://www.developpez.com
le 19/01/2018 à 13:19
Sur notre site internet ouvrir une page representative du travail repetitif effectue sur l'intranet (Angularjs) met 12 secondes en Firefox ESR 52, 8 secondes en Firefox 57 et 3 secondes en Chrome.
Du coup ce sera Chrome pour tout le monde.
Avatar de Zefling Zefling - Membre expert https://www.developpez.com
le 19/01/2018 à 13:40
Citation Envoyé par frfancha Voir le message
Sur notre site internet ouvrir une page representative du travail repetitif effectue sur l'intranet (Angularjs) met 12 secondes en Firefox ESR 52, 8 secondes en Firefox 57 et 3 secondes en Chrome.
Du coup ce sera Chrome pour tout le monde.
AngularJS /Angular sont codés par Google est principalement testé sous Chrome. Je suis dessus, et ça se voit quand on regarde les bugs reportés.
De plus, ce qui est mise en œuvre ne touche pas encore à la partie JS. Firefox 57 c'était surtout Stylo (Quantum CSS).

Contacter le responsable de la rubrique Accueil