Firefox : le multiprocessus Electrolysis monte doucement en puissance

Firefox : le multiprocessus Electrolysis monte doucement en puissance

Un fonctionnement par défaut début 2017

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

08/09/2016 3 minutes
69

Firefox : le multiprocessus Electrolysis monte doucement en puissance

Mozilla augmente actuellement le nombre d’utilisateurs pouvant accéder à Electrolysis, le mode multiprocessus de Firefox. Du petit pourcent originel, on passe ainsi à 10 %. La route est pourtant encore longue avant que tout le monde puisse en profiter.

Electrolysis, ou E10s, est un projet de longue haleine chez Mozilla, qui vise à modifier le cœur de Firefox pour le séparer essentiellement en deux processus, l’un consacré au rendu, l’autre à tout le reste. Contrairement à Chrome ou à Edge par exemple, Firefox effectue tous ses calculs au sein du même processus. Si le chargement d’une page devient exigeant en puissance de calcul (nombreux éléments multimédias, scripts, etc.), la fluidité de l’interface peut en être affectée.

Le changement n’est pourtant pas simple à mettre en place, les développeurs y travaillant partiellement depuis des années. Un premier lancement a eu lieu, mais sous forme de test : 1 % seulement des utilisateurs en dispose par défaut, et uniquement si aucune extension n’en empêche le fonctionnement. Les add-ons sont en effet en grande majorité incompatibles avec Electrolysis et doivent être modifiés en conséquence.

100 % de la population « idéale » d'ici quelques semaines

Cette semaine, le chiffre grimpe doucement pour atteindre 10 % des utilisateurs, toujours dans les mêmes conditions. Si vous utilisez un ordinateur classique (sans écran tactile), sur un système récent (donc pas Windows XP) et que vous n’avez aucune extension, vous êtes dans la population « idéale » visée par Mozilla actuellement. Un groupe qui représente tout de même 40 à 50 % de l’ensemble des utilisateurs. Au cours des prochaines semaines, le chiffre passera de 10 à 100 %.

Le directeur de Firefox, Asa Dotzler, a indiqué à TechCrunch que tout se passait bien jusqu’à présent. D’après les statistiques renvoyées, la réactivité de l’interface est jusqu’à 400 % supérieure, voire 700 % durant le chargement des pages web. Attention, on parle bien de réactivité et de non de performances brutes. On le sentira donc dans les mouvements de la souris, au temps de réaction quand on clique sur un bouton du navigateur, etc.

Notez que cette phase concerne toujours l’actuelle version 48 de Firefox. Dès la 49, prévue pour le 13 septembre, Electrolysis sera activé chez les utilisateurs d’un petit nombre d’extensions dont la compatibilité a été vérifiée. Les versions 50 et 51 (8 novembre et 24 janvier) prendront en charge un nombre plus important d’extensions tout en mettant en place une sandbox. Un élément important puisque chacune disposera alors de son propre espace mémoire isolé des autres. Mozilla a d’ailleurs publié hier soir un billet invitant les développeurs à s’attaquer au problème, notamment via Add-on Compatibility Reporter, ou en basculant vers les WebExtensions.

firefox electrolysis

Pas de processus par onglet prévu à ce jour

Idéalement, Electrolysis doit devenir le mode de fonctionnement par défaut de Firefox début 2017, tout du moins pour les nouvelles installations. Les utilisateurs personnalisent parfois largement leur navigateur, ce qui était après tout l’intérêt premier de Firefox.

Electrolysis ne va toutefois pas aussi loin que ce que font Chrome, Edge et Opera sur le terrain des processus multiples. Dans ces navigateurs, chaque onglet dispose du sien propre. Les avantages sont multiples, particulièrement sur des machines disposant de plusieurs cœurs d’exécution : réactivité, sécurité et fiabilité. Mozilla n’a pour le moment aucun plan de ce genre, mais la situation pourrait évoluer, comme toujours.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

100 % de la population « idéale » d'ici quelques semaines

Pas de processus par onglet prévu à ce jour

Commentaires (69)


Aucun de mes scripts n’est compatible

Même Greasemonkey le désactive




Si vous utilisez un ordinateur classique (sans écran tactile), sur un système récent (donc pas Windows XP) et que vous n’avez aucune extension, vous êtes dans la population « idéale » visée par Mozilla actuellement.



Quelqu’un connaît une personne de son entourage ayant un firefox sans la moindre extension ?


Je viens de trouver cette page pour activer sur son Firefox 48.0.2 <img data-src=" />



Suivre le lien ici

Pour les paresseux about:config :

browser.tabs.remote.autostart=true

browser.tabs.remote.force-enable=true

extensions.e10sBloc­kedByAddons=false

extensions.e10sBloc­ksEnabling=false



Et on a bien dans about:support : Fenêtres multi-processus 11 (Activé par l’utilisateur)


Ma mère&nbsp;<img data-src=" />


La mienne utilise Opera. <img data-src=" />


Merci pour ce billet fort intéressant.



On voit bien l’avantage d’avoir un processus par onglet, mais y’a-t-il des inconvénients (et lesquels) ?


La consommation de mémoire vive&nbsp;


J’attends de voir si Electrolysis va améliorer les perf de Firefox avec Jira. Actuellement, il freeze à mort dès que le backlog est un peu chargé.


-Electrolysis est un nouveau projet il amène donc aussi une perte de stabilité.



-Comme l’a dit vincent ça augment la consomation de RAM



-Incompatibilité avec certain add-on (mais si il y a un probleme regarde les bugtracker, il y a souvent des tickets ouverts et/ou corrigés)


Même pas un bloqueur de pub ? <img data-src=" />


Est-ce que Mozilla a publié un calendrier théorique concernant la montée en compatibilité avec les addons ? Parce que comme tout le monde, ou presque, j’ai des extensions ; au nombre de 10, dont 5 me sont résolument indispensables.



Je suppose que ça va être à la charge des développeurs/éditeurs de mettre à jour chaque extension, mais il faudrait que Mozilla adopte une politique fortement incitante à ce sujet.



Sans ça, c’est un coup d’épée dans l’eau.


Euh ouais, moi. Mais j’ai une astuce : en fait j’utilise Chrome. <img data-src=" />




Pas de processus par onglet prévu à ce jour



Ça aurait été bien de développer ce point. J’ai toujours pensé que Electrolysis était un truc à la Chrome…


Perso j’ai forcé l’activation pour tester, et je dois dire que je ressens vraiment la différence.



Tout est globalement plus fluide, du démarrage de l’application, au chargement des pages.



Et j’ai de la chance, toutes mes extensions sont compatibles, j’ai aucun souci !


Rien du tout


Du tout, et tous les papiers que j’ai publiés sur le sujet le disaient clairement : deux processus, un pour le moteur de rendu, l’autre pour le reste. La situation changera avec la sandbox, puisqu’on aura un processus supplémentaire par extension.


Mozilla n’a en aucune façon de responsabilité sur l’adaptation des add-ons sur les nouvelles versions et technologies, si certains add-ons te posent problème sur les versions récentes tu dois te tourner vers les développeurs en question s’il n’ont pas arrêté le projet.



Et Mozilla communique largement suffisamment envers les devs sur les nouvelles features et grâces aux multiples canaux de FireFox, Beta, Aurora et même une version de Firefox spéciale pour les devs, ils ont largement de quoi prendre de l’avance sur les versions stables. ;)


Quelque part, si, ils ont des moyens d’action. Les extensions se trouvant sur le “store” mozilla sont soumises à une validation/CGU. Il peuvent très bien inciter fortement les éditeurs à migrer s’ils veulent garder leur place. A la manière d’Apple qui, après avoir laissé une période d’adaptation incitative, à fini par forcer la main aux éditeurs pour converger vers 100% d’applications 64-bits native. Ou un peu à la manière de Microsoft avec les applications compilées spécifiquement (j’ai oublié le nom). [pas taper sur la comparaison Mozilla Apple/M$ <img data-src=" /> c’était juste pour l’idée]



Bref, ce genre de méthode me semble adaptée: une fois que leur calendrier des 100% des “utilisateurs idéaux” seront migrés, et après les quelques cycles de débug, quand ils estimeront la technologie stable et mature, en utilisation basique, ils peuvent très bien dire : “dans 6 mois, toutes les extensions doivent être compatibles, sinon elles seront retirées du store, et il faudra une bidouille dans about:config pour pouvoir les utiliser encore passé ce délai”.


Tu regarderas la différence de budget entre Firefox et Apple/Microsoft et si tu crois que Firefox à des ressources humaines à gaspiller pour ce genre de conneries c’est toi qui voit mais c’est juste inenvisageable de demander à une fondation, qui manque déjà de devs pour amener les nouvelles features rapidement, de s’occuper de trier des add-ons pour des devs paresseux ou qui abandonnent leurs projets …&nbsp;


Greasemonkey est une cochonnerie sans nom aussi, qui te bouffe un max de RAM.


Comment monter à 100% si les extensions bloquent ? Ils arriveront à 50% (si c’est bien la population avec 0 extension), mais le reste semble compromis, non ?


Merci ! &lt;3


C’est quand même sensé être le fer de lance de firefox, les extensions.

Les devs paresseux ne vont pas passer leur vie à maintenir leurs extensions. Tu fais un truc qui marche au poil, si 5 ans après il ne marche plus, il est probable que t’ai un peu autre chose à faire que de t’y replonger…

En réalité, je pense qu’on ne peut ni demander à mozilla (car effectivement trop coûteux) ni vraiment compter sur les auteurs.


Dans ce cas, ton extension tombe aux oubliettes et un autre viendra le remplacer…


Si tu es dev et que tu penses qu’une application peut tourner 5 ans sur une plateforme en constante évolution sans avoir besoin d’optimisation constante également, il faut urgemment changer de métier !








Jarodd a écrit :



Comment monter à 100% si les extensions bloquent ? Ils arriveront à 50% (si c’est bien la population avec 0 extension), mais le reste semble compromis, non ?





100% des personnes faisant partie du groupe ‘idéal’ décrit par Vincent ;)









Nozalys a écrit :



[pas taper sur la comparaison Mozilla Apple/M\( <img data-src="> c'était juste pour l'idée]



&nbsp;

On&nbsp;ne va pas te taper pour ça mais&nbsp;pour ton M\)
&nbsp;immature.









Gilbert_Gosseyn a écrit :



Greasemonkey est une cochonnerie sans nom aussi, qui te bouffe un max de RAM.





c’est une blague??



quand on a gouté aux scripts, dur de faire machine arrière

pour la consommation de la RAM, je dépasse rarement 800 - 900 Mo avec une vingtaine d’onglets. Sur mon PC avec 8 Go, no soucy.

et comme je dis toujours : la RAM est faites pour être utilisée



Dites, un peu HS, mais j’ai des bugs d’affichage depuis le passage à gtk3. Entre autre, le menu clic-droit s’affiche bizarrement si je ne bouge pas la souris (le haut du menu est entièrement noir, comme s’il n’était pas achevé d’être dessiné, si je fais un “mouseover” la boite devient instantanément normale) ; les vidéos html5 ne s’affichent pas totalement en pleine écran, il reste un “vide” à droite de la largeur d’un scroll vertical.

Ce sont des bugs reconnus, ou bien ?

Merci.


Toutafay ! A un moment donné, on est obligé de faire le compromis entre RAM utilisé et performance.


Je n’ai jamais émis l’idée que Mozilla dépenserait le moindre sou pour faire l’adaptation eux-même, tu n’as pas bien lu mon commentaire. Néanmoins comme l’on t’a déjà répondu, les extensions, c’est un des chevaux de bataille de Firefox. Certes ça se démocratise un peu ces dernières années dans les autres navigateur, mais ça reste “empirique” pour Firefox. Ils ont du mal à garder leurs parts de marché, c’est dans leur propre intérêt de faire en sorte que les extensions restent accessibles.









Hugues1337 a écrit :



On ne va pas te taper pour ça mais pour ton M$ immature.





Ahah, merci <img data-src=" /> J’ai toujours utilisé cet “acronyme”, sans aucun sous-entendu. Cette mode récente faussement anti-dénigrement-présumé qui émerge ci et là depuis 2 ou 3 ans me fait toujours rigoler <img data-src=" />



Malgré ses multiples processus, Edge freez souvent sur les grosses pages.

Bon… J’ai souvent une trentaine d’onglets ouverts et ce n’est pas une installation propre, ça peut jouer ^^


En effet. Par contre il existe quand même un (début de) plan pour plusieurs processus pour le rendu des pages web :https://wiki.mozilla.org/Electrolysis/Multiple_content_processes

De ce que j’ai lu récemment, l’idée est à moyen termes d’avoir une limite max de nombre de processus afin d’éviter une conso trop importante, chaque processus pouvant alors s’occuper de plusieurs onglets


Tu as quelles extensions d’installées ?








Schumi a écrit :



Aucun de mes scripts n’est compatible

Même Greasemonkey le désactive







Pourtant Greasemonkey est affiché compatible ici : Are we e10s yet?









SolykZ a écrit :



Euh ouais, moi. Mais j’ai une astuce : en fait j’utilise Chrome. <img data-src=" />





Et sur une actu Mozilla on… bah ouais, on s’en fiche, Chrome n’est pas le sujet



Perso je choisis RAM, car je préfère conserver le multi tache ^^








RRMX a écrit :



Et sur une actu Mozilla on… bah ouais, on s’en fiche, Chrome n’est pas le sujet







Les Mozilliens n’ont pas d’humour, c’est ça que t’essaies de me dire ? Bon…









Dryusdan a écrit :



Perso je choisis RAM, car je préfère conserver le multi tache ^^





J’ai 16go de RAM alors jepréfère les perfs <img data-src=" />





Sinon j’ai forcé l’activation de Electrolysis…

… bon bah c’est effectivement pas prêt pour tout le monde <img data-src=" />



je suis dev web, mais je ne comprends pas pourquoi les extensions ne sont pas compatibles.

Problème d’accès à des ressources mémoire qui ne sont plus dispo?

Les extensions incompatibles…. attention Firefox c’est un de vos atouts…

&nbsp;

Je suis impatient de voir les changements… dommage pour le multiprocessus par onglet qui n’est pas là…


j’en ai 8, mais avec un outil de dev derrière à 500Mo, virtualbox (et un jeu par navigateur plus quelques extensions qui font monter à 1.5Go) je suis trop proche de la limite ^^ (enfin il me reste 4Go mais couplé avec l’antivirus et un éventuel jeu vidéo… x) )



Je vais attendre alors :p








étienne a écrit :



je suis dev web, mais je ne comprends pas pourquoi les extensions ne sont pas compatibles.

Problème d’accès à des ressources mémoire qui ne sont plus dispo?

Les extensions incompatibles…. attention Firefox c’est un de vos atouts…

 

Je suis impatient de voir les changements… dommage pour le multiprocessus par onglet qui n’est pas là…







Installe Firefox Developper Edition



Oui je surveille de près, j’en parlerai quand les choses se seront un peu précisées de ce côté dans plusieurs mois&nbsp;


ah? je vais tester..


Ça fait longtemps qu’on peut avoir plus d’un seul content process, par contre c’est pas supporté.&nbsp; On peut modifier dom.ipc.processCount, mais je déconseille de le faire sur des profils de personnes qui ne sont pas prêtes à identifier/rapporter des bugs.



Les lecteurs qui veulent le faire devraient le faire sur un Nightly [ https://nightly.mozfr.org/ ]. Pour ma part ça fait plusieurs mois que je tourne avec, et on sent quand même une amélioration, une page ne bloque plus tout :)


Notez qu’en pratique le seul truc que j’ai vu pété avec dom.ipc.processCount &gt; 1 c’était view-source: et c’est corrigé :)


<img data-src=" />


Elle devrais installer au moins µblock origin


Ah merci.

Je ne connaissais pas celle-là.

Quel est le nombre idéal ?

Je vois certains qui montent à 10, d’autres 4.



1 par coeur de processeur ?


En fait, les problèmes inhérents à tout logiciel multiprocessus (et c’est pour ça que “peu” de logiciels le sont) :

* Quand un processus (UI, etc) demande quelque chose à un autre processus (est-ce que la page est complètement chargée ?), il faut attendre que le processus ciblé soit disponible (quelques microsecondes, mais quand c’est plein de fois par seconde c’est pas négligeable)

* Quand plusieurs processus veulent accéder à une même ressource (variable, certaines fonctions), ils doivent faire la queue pour qu’il n’y ait pas d’incohérence (on utilise pour ça des mutex, sémaphores, etc).

En fait, si un logiciel plante inopinément, 70% du cas ce sera un logiciel multithread avec des problèmes d’accès concurrentiels.

En plus bien sûr de l’augmentation de la RAM.

Donc avec 4 coeurs et 4 threads, la plupart du temps ton logiciel ira 3 fois plus vite seulement à cause de cet “overhead” dû au multithreading.

D’où le passage “pas anodin” à Electrolysis, et le passage en douceur que Mozilla entreprend.


Ça fait bien partie des bugs que je n’ai jamais vus… Quelle distro, quelle version de GTK+3 ?








Gilbert_Gosseyn a écrit :



Greasemonkey est une cochonnerie sans nom aussi, qui te bouffe un max de RAM.





Si j’en crois about:addons-memory, pas vraiment…

&nbsp;

Cela étant, si cela fait bouffer encore plus de ram à FF, cela ne risque pas de redorer son blason… Tellement de gens se plaignent de la consommation de RAM.. Dont moi son mon PC qui prend de l’age…









Dryusdan a écrit :



Perso je choisis RAM, car je préfère conserver le multi tache ^^





Exactement. Si ca bouffe masse RAM mais te tue le multi-tâche….



Manjaro version Gnome 3.20, Firefox 48.0.2. J’y ai installé ce thème là :https://github.com/horst3180/arc-firefox-theme mais je crois qu’en changeant de thème ça ne change rien au problème (il me semble). Le bug du clic-droit n’est pas systématique, il se reproduit par exemple si on fait une nouvelle sélection.


Après plusieurs semaines d’utilisation de cette fameuse fonctionnalité, mon avis est que c’est plutôt pas mal pour avoir en effet une interface plus réactive. Dit autrement, les sites de merde bourrés de JavaScript ne bloquent plus le navigateur. En cela, l’utilisation de bloqueurs de publicité (sauf sur NXI :-) ) reste indispensable.



Parmi tous les processus qui sont lancés pour les onglets, il y en a toujours un qui consomme plus que les autres. Il s’agit du processus parent à tous les onglets. C’est très dommage.



Pour les onglets qu’on ouvre et ferme, la mémoire correspondante est bien libérée et on est sur le même schéma appréciable de Chrome.



Attendons les améliorations à venir, il reste du boulot.


Ça peut valoir le coup de reporter le bug sur le bugzilla de ta distro et voir si c’est un bug upstream ou pas.








jeje07bis a écrit :



et comme je dis toujours : la RAM est faites pour être utilisée







Certes, et je suis d’accord sur le principe.



Mais du côté des navigateurs en général, ils n’utilisent pas la RAM, ils la monopolisent.



La saleté de Chrome que je dois subir au taff bouffe à lui tout seul les 34 de la RAM juste avec 5 onglets… Dont celui de Gmail dans les 600Mo. Résultat obligé de faire un choix : avoir les outils collaboratifs de la boîte ouverts mais pas mes outils de travail, ou vice-versa. Peu pratique quand on a besoin des deux en même temps.

Sinon ça swap à mort…



Mon PC perso a 16Go de RAM donc je m’en branle de savoir que Vivaldi (basé Chromium aussi) en bouffe 4Go. Par contre le PC que j’ai au boulot, lui il a 4Go et l’inconfort se fait trèèèèès vite sentir.



Ton PC swap peut-être trop vite


Dans ce cas c’est peut être pas le navigateur qui consome beaucoup de RAM mais GMAIL ?



Il ne faut pas oublier qu’un navigateur moderne est surtout une plateforme ou les sites font tourner des programmes, parfois complexes comme GMAIL, parfois tres simple (comme le site de l’association de pétanque du quartier) et c’est souvent ces programmes, mal écrits qui consoment énormément de RAM (mon record était un script mal codé qui consomait 1Go de RAM et qui apres reériture consomaint plus que 30mo)


Sauf que chrome consomme énormément, il est juste inutilisable en navigateur principal pour ceux qui utilisent beaucoup d’onglets. J’avais d’ailleurs très peur que Firefox prenne ce chemin, mais l’augmentation de la conso mémoire du multi process semble contenue.



Et ne sous-estime pas le site de l’association de pétanque du quartier et la lourdeur lourdesque du script de “simulation de neige” encore présent en mai ou les images du menu faisant chacune plusieurs 10aines voire 100aines de Ko :)


C’est un nombre de processus qui seront exécutés et qui vont se voir répartis l’exécution du code des tabs. Tu en met autant que tu veux :). J’ai pas regardé s’il y a des gens qui ont cherché le meilleur ratio perf/process. Perso j’en ai 16 (sur une machine avec 4 CPUs, i7 5600U).


Apparemment il y a un topic recensant les problèmes du passage à Gtk3 pour Firefox sous Manjaro Gnome, je n’avais jamais cherché, en même temps mon problème bien qu’assez chiant est mineure, j’ai fini par m’y habituer. Je vais voir.


Pas mal de truc, uBlock, Ghostery, Tab mix plus, Keefox…



&nbsphttps://arewee10syet.com/ Pour savoir si une extension est compatible ou non :)


Firefox dépasse rarement 2Go (jamais ? ) et le CPU respire alors Chromium et dérivé vous défonce le CPU car même si le multitache est présent, j’ai remarqué que plus il y avait de tache ouverte, même sur les grosses machine, moins le processeur était réactif et cela tuais le multi tache, alors que la ram…

Après c’est mon avis ^^


C’est pas ce que me dit about:addons-memory

C’est nawak ce que tu racontes ou provient d’une mauvaise expérience qui date d’une vieille version ou avec script trop lourd ou mal optimisé.


Un bloqueur de pub, c’est le minimum quand même, ne serait-ce que pour éviter les script malveillants les plus communs qui pourraient faire bobo à maman. Tu as une confiance absolue en maman ou dans les grands esprits de l’informatique ou alors tu l’as bien coachée pour ne pas qu’elle se fasse avoir en cliquant là où il ne fallait pas.



Comme j’ai pas envie de faire de service dépannage ou recueillir des plaintes, j’ai ajouté ce qu’il faut à firefox et ça roule bien comme ça depuis presque 10 ans <img data-src=" />








Dryusdan a écrit :



Firefox dépasse rarement 2Go (jamais ? ) et le CPU respire alors Chromium et dérivé vous défonce le CPU car même si le multitache est présent, j’ai remarqué que plus il y avait de tache ouverte, même sur les grosses machine, moins le processeur était réactif et cela tuais le multi tache, alors que la ram…

Après c’est mon avis ^^





Dit ca a un mec qui n’a que 2 go. Et oué, une barette morte et pour remplacer, faut tout changer (et puis je vais pas racheter de la mémoire obsolète). Je suis un défenseur de Firefox, et la conso mémoire s’est améliorée..



Je pense aussi aux personnes qui essaient de promouvoir FF dans les entreprises … qui souvent n’on pas des foudres de guerre en terme de matériel <img data-src=" />



Firefox s’adapte en fonction de la configuration du pc ;) Selon Mozilla, de la mémoire non utilisé est de la mémoire inutile, donc autant l’utiliser ;)


On ne doit pas avoir la même définition de inutilisée <img data-src=" />.