Firefox 46 Developer Edition s'attaque à la consommation de mémoire vive

Firefox 46 Developer Edition s’attaque à la consommation de mémoire vive

Des objets à surveiller

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

03/02/2016 3 minutes
48

Firefox 46 Developer Edition s'attaque à la consommation de mémoire vive

Après Google et un Chrome 49 bêta largement centré sur les développeurs web, Mozilla lance à son tour son Firefox 46 Developer Edition. Là encore, l’éditeur continue sur l’amélioration des outils existants, un effort constant depuis quelques mois en particulier.

Chrome a beau mener la vie dure à Firefox, Mozilla n’en démord pas : son navigateur doit devenir une référence pour les développeurs web. Depuis quelques versions, on note ainsi un effort particulier sur l’enrichissement des outils intégrés. Les versions Developer, basées sur le canal Aurora (et donc avant les bêtas), permettent justement de tester les nouveautés en avance, pour peu que l’on s’estime résilient aux éventuels bugs.

Un suivi plus fin de la consommation de mémoire vive

Firefox 46 Developer Edition a du coup été annoncé hier soir et contient plusieurs améliorations pour certains outils, à commencer par celui dévolu à la mémoire vive. Une nouvelle vue, baptisée « Dominator », permet d’examiner de près l’allocation en mémoire pour les différents objets. Le développeur peut ainsi voir n’importe quel objet référence et la taille de chacun en mémoire. L’idée est bien sûr de permettre une plus grande maîtrise de la consommation d’une page, certaines pouvant se montrer particulièrement gourmandes.

Cette surveillance des allocations de mémoire vive se retrouve également dans l’outil dédié aux performances. Les enregistrements sont donc plus détaillés et permettent au développeur de savoir notamment dans quelles proportions le ramasse-miettes (garbage collector) agit sur l’application web en cours d’utilisation. Le signalement des allocations n’est cependant pas actif par défaut, et il faudra se rendre dans les paramètres pour le sélectionner dans le menu, comme indiqué dans la capture ci-dessous.

firefox developer

De la visibilité avant tout

Suite à diverses demandes, Mozilla a ajouté en outre une simplification pour la compilation avec Emscripten. Le nom des fonctions change en effet pendant cette étape, et certains développeurs aimeraient pouvoir faire le lien plus facilement avec le code originel. L’outil de profilage du call tree permet donc désormais d’afficher les noms originaux des fonctions.

Parmi les autres améliorations, signalons en particulier un débogueur dorénavant actif en permanence, la possibilité de vider les instantanés du heap dans l’outil dédié à la mémoire, celle de sélectionner le texte dans le call tree de l’outil des performances, un contraste amélioré sur les pages sombres dans la barre d’informations de l’inspecteur ou encore une suppression du maximum d’éléments dans l’inspecteur de stockage. Rappelons enfin que cette version 46 est la première à activer par défaut le signalement des sites n'utilisant pas de connexion sécurisée, comme nous l'avions indiqué la semaine dernière.

Les développeurs intéressés pourront récupérer cette nouvelle mouture depuis la page dédiée.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Un suivi plus fin de la consommation de mémoire vive

De la visibilité avant tout

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (48)


Ca serait bien s’ils s’attaquaient à la consommation du CPU également. Surtout utile pour économiser de la batterie sur laptop. 


La version développeur sert a créer un site WEB, ou c’est juste pour vérifier le fonctionnement du dit site ?

 








Kaamelott a écrit :



Ca serait bien s’ils s’attaquaient à la consommation du CPU également. Surtout utile pour économiser de la batterie sur laptop. 





Si la consommation de ressources (CPU, ram…) augmente avec le temps, c’est essentiellement du au fait que le web est devenu un vaste bordel avec des sites codés avec un pied, et des technos web beaucoup trop permissives…



 





Tarvos a écrit :



La version développeur sert a créer un site WEB, ou c’est juste pour vérifier le fonctionnement du dit site ?



 








Ben il sert à «créer» un site web en vérifiant son fonctionnement avec des outils de dev. Ça sert également à tester les technos futures de firefox/du web.








marba a écrit :



Si la consommation de ressources (CPU, ram…) augmente avec le temps, c’est essentiellement du au fait que le web est devenu un vaste bordel avec des sites codés avec un pied, et des technos web beaucoup trop permissives…




       






 Ben il sert à «créer» un site web en vérifiant son fonctionnement avec des outils de dev. Ça sert également à tester les technos futures de firefox/du web.







Je dis ça car sur ma tour composé d’un proc e8500 fréquence d’origine soit 3.16GHz il n’y que le navigateur Edge ou IE11 qui peux lire une vidéo 1080p60ips de manière fluide sans foutre le CPU à 100%. Sur mon MBA aucun soucis mais il n’y que Safari que me prend pas beaucoup de CPU contrairement à Chrome, Firefox, Opéra.. L’autonomie s’en ressent donc.



Désactive/Active Flash pour comparer les performances.



Et si tu es sur windows installe la version 64 bits, il y aura peut être du mieux.

https://ftp.mozilla.org/pub/firefox/releases/44.0/win64-EME-free/fr/








marba a écrit :



Si la consommation de ressources (CPU, ram…) augmente avec le temps, c’est essentiellement du au fait que le web est devenu un vaste bordel avec des sites codés avec un pied, et des technos web beaucoup trop permissives…







Pour le coup, si je suis d’accord avec toi sur le coté vaste bordel/foot coding… firefox reste quand même, selon mes impressions le seul navigateur qui ne rend pas ce qu’il prend.

Lorsque je suis sur du développement web, c’est pratiquement le seul navigateur que je suis obligé de relancer plusieurs fois par jour parce qu’il devient super lent et très poussif, même en fermant les onglets. Pas d’autre solution que de quitter/relancer.



J’aime ce navigateur, mais j’ai quand même une très mauvaise image de lui de ce coté.



Je ne sais pas quelles vidéos en HD Kaamelott voulait regarder, mais avec la version EME-free ça risque de ne pas passer du tout car beaucoup de vidéos YouTube en 1080 sont protégées par DRM.



Le cas échéant, essayer plutôt https://ftp.mozilla.org/pub/firefox/releases/44.0/win64/fr/








Benoit.l a écrit :



Je ne sais pas quelles vidéos en HD Kaamelott voulait regarder, mais avec la version EME-free ça risque de ne pas passer du tout car beaucoup de vidéos YouTube en 1080 sont protégées par DRM.



Le cas échéant, essayer plutôt https://ftp.mozilla.org/pub/firefox/releases/44.0/win64/fr/





 Avec flash désactivé (drm aussi), j’ai jamais constaté qu’il y

avait des vidéos qui ne pouvaient pas être lues. Peut être qu’ils

restreignent les formats type 1080*60 aux drm, mais je ne l’ai jamais

remarqué…





 



t-la a écrit :



Pour le coup, si je suis d’accord avec toi sur le coté vaste bordel/foot coding… firefox reste quand même, selon mes impressions le seul navigateur qui ne rend pas ce qu’il prend.

Lorsque je suis sur du développement web, c’est pratiquement le seul navigateur que je suis obligé de relancer plusieurs fois par jour parce qu’il devient super lent et très poussif, même en fermant les onglets. Pas d’autre solution que de quitter/relancer.



J’aime ce navigateur, mais j’ai quand même une très mauvaise image de lui de ce coté.





Personnellement ça fait des années que je n’ai plus de bug de mémoires avec Fx, ni de plantages. Peut être il faut que tu regardes du côté de ta machine, compare avec chrome.



Avec une utilisation > 30 onglets, je ne rencontre aucun problèmes, et je n’ai pas une machine de guerre.



[qutoe]

… de relancer plusieurs fois par jour parce qu’il devient super lent et très poussif,

[/quote]



Un “nextinpactien” ma récemment dit que se problème touche plusieurs personne et est vieux. Mozilla doit en avoir conscience mais en attendant augmente ton cache si tu as plus de 2go de Ram (et je suppose que c’est le cas)

 








t-la a écrit :



Lorsque je suis sur du développement web, c’est pratiquement le seul navigateur que je suis obligé de relancer plusieurs fois par jour parce qu’il devient super lent et très poussif, même en fermant les onglets. Pas d’autre solution que de quitter/relancer.







J’ai aussi ce problème, mais uniquement sur mon pc personnel.

J’utilise pourtant plus intensément firefox au boulot mais avec un autre profil.



En intervertissant le profil firefox du pc Pro avec celui du PC personnel,  j’ai découvert que c’était du à l’ensemble des données liées à mon profil (favoris, historique, paramètre, modules, etc…). Il semblerai qu’avec le temps une partie de ces fichiers soit corrompue…

 

Après est-ce que c’est un bug firefox ou un méli mélo de petites erreurs accumulées avec les différents modules que j’ai ajouté / supprimé avec le temps… Je pencherai plus pour la seconde option ^^





A noter que j’observe la même chose pour le chrome de ma compagne, avec le temps des petits bugs s’accumulent. Le seul remède est de repartir d’un profil “propre”.



J’ai le problème aussi. J’ai fini par me refaire un profil neuf (juste réimporter mes bookmarks) et bien le problème est toujours présent. Par contre il apparait moins vite depuis que je suis passé sous Firefox 64 bits.








marba a écrit :



Personnellement ça fait des années que je n’ai plus de bug de mémoires avec Fx, ni de plantages. Peut être il faut que tu regardes du côté de ta machine, compare avec chrome.

Avec une utilisation > 30 onglets, je ne rencontre aucun problèmes, et je n’ai pas une machine de guerre.





J’ai le même problème que lui. Quand je m’essaye au dev web, à chaque fois que j’en fait une qui bouffe de la mémoire (genre un objet js qui prend de plus en plus de place dans une boucle infinie), après mon Firefox n’est plus utilisable. J’ai déjà vu en pratique mon Firefox avec un seul onglet vide bloquer plus de 7Go de RAM sur les 8 de la machine.

Après, en usage courant, et même avec beaucoup d’onglets, je n’ai aucun problème y compris sur ma machine qui n’a que 2Go de RAM.



Bizarre ton problème de Ram, j’ai un Firefox chez moi que je n’ai relancé qu’une fois en un mois. Et au boulot il tiens la semaine sans trop de problème et des onglets j’en ouvre et fermer quantité (dév web).


Regarde tes plugins/extensions.

Celles qui servent au dev web bouffent un max de ressources.


150 onglets, environ 500 Mo sous Nightly x86 avec NoScript.

Tu peux mieux faire <img data-src=" />








Mithrill a écrit :



Moi idem pour la quantité d’onglet parfois atronomique plus de 50 à 300~500 parfois, j’ai pris l’habitude avec Opera qui était bien plus fluide de ce côté. Mais avec Fx + Tab Tree d’activé c’est souvent les pages youtube qui me posent soucis je pense et au lieu de gérer ça de manière intelligente (comme un buffer isolé en ROM) et bien ça me pourrit les perfs. Je trouve ça embêtant, je n’avais pas ce soucis sous Opera.





Peut être essayer de bloquer la lecture automatique de vidéos ?

Parce qu’ouvrir simultanément plusieurs vidéos youtube c’est un peu chercher ^^.





Zerdligham a écrit :



J’ai le même problème que lui. Quand je m’essaye au dev web, à chaque fois que j’en fait une qui bouffe de la mémoire (genre un objet js qui prend de plus en plus de place dans une boucle infinie), après mon Firefox n’est plus utilisable. J’ai déjà vu en pratique mon Firefox avec un seul onglet vide bloquer plus de 7Go de RAM sur les 8 de la machine.

Après, en usage courant, et même avec beaucoup d’onglets, je n’ai aucun problème y compris sur ma machine qui n’a que 2Go de RAM.





Firefox permet aux scripts de prendre la place qu’ils veulent dans la mémoire disponible. Je vois pas en quoi c’est un problème (en fait si, c’est un problème de conception des normes web js), c’est avant tout un problème de conception coté serveur.



Si tu fais une boucle infinie qui alloue de la mémoire, alors oui firefox va tout pomper… Ça marche également en C, C++, java…



Le problème n’est pas qu’il permet au script de tout pomper, l’erreur de programmation est clairement de ma faute. La critique porte sur le fait que même après avoir tué le script et fermé la page, la mémoire n’est jamais rendue.








marba a écrit :



Personnellement ça fait des années que je n’ai plus de bug de mémoires avec Fx, ni de plantages. Peut être il faut que tu regardes du côté de ta machine, compare avec chrome.



Avec une utilisation &gt; 30 onglets, je ne rencontre aucun problèmes, et je n’ai pas une machine de guerre.







En même temps t’es un petit joueur, j’ai rarement moins de 150-200 onglets que ce soit sur mon PC perso ou celui du boulot, et dernièrement je devais redémarrer firefox au mieux toutes les semaines alors qu’avant je tenais facile 1 ou 2 mois.

Ca s’est un poil amélioré quand j’ai viré toutes les extensions dev après avoir migré le dev sur la developer edition, et viré beaucoup d’onglets, mais en ce moment ça commence à nouveau à avoir du mal, même sans saturer mes 8 Go de ram sur la version 64 bits, au bout de quelques jours le moindre rafraichissement d’onglet prend 3 plombes et freeze tout le navigateur.



D’ailleurs jusqu’à il y a 3-4 mois quand je lançais par exemple un refresh d’une 15aine d’onglets ebay, passées quelques secs de gros chargement ça finissait un onglet toutes les 2-4 secs et je pouvais scroller les onglets terminés pendant ce temps, maintenant ça met 3 plombes (genre 30 secs voire 1 min avant de finir le 1er onglet puis bien 10-20 secs par onglet) et ça fait plein de micro-freezes (voire pas si micro que ça) sur tout le navigateur même quand je viens de le lancer alors que j’ai plein d’extensions en moins…

J’ai le temps d’aller pisser pendant que 15 pauvres pages ebay se chargent…









Zerdligham a écrit :



Le problème n’est pas qu’il permet au script de tout pomper, l’erreur de programmation est clairement de ma faute. La critique porte sur le fait que même après avoir tué le script et fermé la page, la mémoire n’est jamais rendue.





Oui là c’est un problème… Remonte ton cas à Mozilla si ce n’est pas déjà fait.



&nbsp;



&nbsp;





Galak_ a écrit :



En même temps t’es un petit joueur, j’ai rarement moins de 150-200 onglets que ce soit sur mon PC perso ou celui du boulot, et dernièrement je devais redémarrer firefox au mieux toutes les semaines alors qu’avant je tenais facile 1 ou 2 mois.

Ca s’est un poil amélioré quand j’ai viré toutes les extensions dev après avoir migré le dev sur la developer edition, et viré beaucoup d’onglets, mais en ce moment ça commence à nouveau à avoir du mal, même sans saturer mes 8 Go de ram sur la version 64 bits, au bout de quelques jours le moindre rafraichissement d’onglet prend 3 plombes et freeze tout le navigateur.



D’ailleurs jusqu’à il y a 3-4 mois quand je lançais par exemple un refresh d’une 15aine d’onglets ebay, passées quelques secs de gros chargement ça finissait un onglet toutes les 2-4 secs et je pouvais scroller les onglets terminés pendant ce temps, maintenant ça met 3 plombes (genre 30 secs voire 1 min avant de finir le 1er onglet puis bien 10-20 secs par onglet) et ça fait plein de micro-freezes (voire pas si micro que ça) sur tout le navigateur même quand je viens de le lancer alors que j’ai plein d’extensions en moins…

J’ai le temps d’aller pisser pendant que 15 pauvres pages ebay se chargent…





Peut être envisager un clean de ton profil ?



J’ai un profil pour le surf et un pour le dév chez moi. Sinon c’est pas tenable, j’aurais plus de 70 extensions dont des biens lourdent.








psn00ps a écrit :



Regarde tes plugins/extensions.

Celles qui servent au dev web bouffent un max de ressources.







Je suis à peu près certain que ce sont les extensions qui mettent la tannée. Mais pas question de m’en passer pour autant.

C’est juste pénible de devoir quitter complètement. J’aurai apprécié que la gestion des ressources soit un peu plus pointue et qu’à la fermeture d’un onglet, les ressources utilisées (y compris par les extensions) soient libérées.

Il y a de toute façon des efforts à faire coté mozilla et dev d’extensions.



C’est un peu le problème des extensions en état, les extensions sont une partie intégrante de Firefox, donc si elle gère mal la mémoire, Firefox n’y peut rien. Les extensions ont tous les droits sur l’interface, donc difficile de les dissocier du reste, mais c’est aussi ce qui fait le puissance de la chose, on peut tout refaire.

Dans le cadre des WebExtensions, qui commence à pointer leur nez, on aura (pour ce que j’ai vu) à peine mieux que ce que propose Chrome, ce qui en terme de personnalisation me fait un peu peur quand je vois les extensions de Chrome.


Personnellement, et dites-moi si je me trompe, je considère que les développeurs de firefox et sûrement des autres navigateurs sont des imbéciles, peut-être même pire que les développeurs de microsoft. La raison en est simple: quand on utilise firefox et qu’il y a pls onglets, celui-ci va mettre en mémoire tous les onglets alors qu’il n’y en a pas l’utilité à moins de vouloir&nbsp; aller sur un onglet. Pour moi, ça s’appelle du codage avec les pieds.


Je trouve ici qu’il n’utilise pas assez de RAM (true story!) et il ne libère pas la RAM correctement.

Il ne dépasse jamais les 1.4 GB de RAM pour une 50 d’onglets. Si je les ferme, ou que j’en ajoute d’autres il restera à 1.4GB



C’est mon navigateur de boulot, grâce aux modules qui me permet de garder des sessions d’onglets verrouillés.

Mais, je le trouve lent à la fin de journée alors que j’ai un SSD, 32 GB de RAM et 6 coeurs.


Et si tu ne stockes pas le contenu des onglets en RAM, tu fais comment ?





  • Soit tu stockes sur le disque dur ==&gt; Le temps de rechargement de l’onglet depuis le disque sera bien plus long que depuis la RAM, donc ça va ramer.

  • Soit tu stockes rien ==&gt; Dès que tu cliques sur l’onglet, il faut aller retélécharger depuis internet le contenu.

    &nbsp;

    Pour moi le stockage en RAM est une bonne chose. Si un onglet est ouvert, c’est qu’on a l’intention de retourner sur ce site web, voire même envie qu’il soit actualisé en temps réel (cf flux FaceBook ou Twitter), chose impossible à faire si l’onglet n’est pas chargé en RAM.



    Après on peut faire du code sioux pour garder quelques éléments en RAM et d’autres en ROM, ou les retélécharger, mais dans tous les cas ça aura un impact (pardon, INpact) négatif sur les performances.








Georges Le Grand a écrit :



Personnellement, et dites-moi si je me trompe, je considère que les développeurs de firefox et sûrement des autres navigateurs sont des imbéciles, peut-être même pire que les développeurs de microsoft. La raison en est simple: quand on utilise firefox et qu’il y a pls onglets, celui-ci va mettre en mémoire tous les onglets alors qu’il n’y en a pas l’utilité à moins de vouloir&nbsp; aller sur un onglet. Pour moi, ça s’appelle du codage avec les pieds.





Alors là je me suis bien marré. Franchement lance toi dans le dev de navigateur tu as l’air d’être super pointu et capable de faire mieux que des centaines d’ingénieurs.









vlar a écrit :



Je trouve ici qu’il n’utilise pas assez de RAM (true story!) et il ne libère pas la RAM correctement.

Il ne dépasse jamais les 1.4 GB de RAM pour une 50 d’onglets. Si je les ferme, ou que j’en ajoute d’autres il restera à 1.4GB



C’est mon navigateur de boulot, grâce aux modules qui me permet de garder des sessions d’onglets verrouillés.

Mais, je le trouve lent à la fin de journée alors que j’ai un SSD, 32 GB de RAM et 6 coeurs.







Tu n’utiliserais pas la version 32 bits de firefox par hasard ? J’avais le même “problème” et en arrivant à 1.4G Firefox se met à ramer. En passant en 64 bits il dépasse cette limite. Mais il finit quand même par ralentir.









zefling a écrit :



C’est un peu le problème des extensions en état, les extensions sont une partie intégrante de Firefox, donc si elle gère mal la mémoire, Firefox n’y peut rien. Les extensions ont tous les droits sur l’interface, donc difficile de les dissocier du reste, mais c’est aussi ce qui fait le puissance de la chose, on peut tout refaire.

Dans le cadre des WebExtensions, qui commence à pointer leur nez, on aura (pour ce que j’ai vu) à peine mieux que ce que propose Chrome, ce qui en terme de personnalisation me fait un peu peur quand je vois les extensions de Chrome.







Merci pour l’info sur les WebExtensions. Je vais m’empresser de ne pas les attendre avec impatience :)









Georges Le Grand a écrit :



Personnellement, et dites-moi si je me trompe, je considère que les développeurs de firefox et sûrement des autres navigateurs sont des imbéciles, peut-être même pire que les développeurs de microsoft. La raison en est simple: quand on utilise firefox et qu’il y a pls onglets, celui-ci va mettre en mémoire tous les onglets alors qu’il n’y en a pas l’utilité à moins de vouloir&nbsp; aller sur un onglet. Pour moi, ça s’appelle du codage avec les pieds.





Avant de traiter les gens d’imbécile, ça serait bien de savoir de quoi tu parles et de ne pas raconter n’importe quoi.









jeje07bis a écrit :



Avant de traiter les gens d’imbécile, ça serait bien de savoir de quoi tu parles et de ne pas raconter n’importe quoi.





Ca vous arrive de répondre de manière constructive ? vous ne savez pas non plus on dirait.



C’est un réglage laissé au choix de l’utilisateur.

Général =&gt; Ne pas charger les onglets tant qu’ils ne sont pas sélectionnés


C’est un réglage laissé au choix de l’utilisateur.

Général =&gt; Ne pas charger les onglets tant qu’ils ne sont pas sélectionnés.


Pas en ROM patron ;) <img data-src=" />


<img data-src=" />&nbsp;A ROM fait comme les ROMains. <img data-src=" />


Question: cette version peut-elle être utile à un simple naviguant qui veut malgré tout suivre la consommation onglet par onglet, objet par objet?


Va sur about:memory et active le verbose.








psn00ps a écrit :



Va sur about:memory et active le verbose.



ça doit vouloir dire oui ^^



Merci, je testerai donc cette version.



Ca veut dire: ce n’est pas nécessaire, c’est présent sur le firefox normal. (et que tu n’as pas essayé <img data-src=" />)

&nbsp;


<img data-src=" />



Firefox ! <img data-src=" />