Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Mozilla s'attaque à la consommation mémoire excessive de Firefox
Et lance le projet MemShrink, la chasse aux fuites est ouverte

Le , par Idelways

0PARTAGES

7  0 
Mise à jour du 10 août 2011 par Idelways

Mozilla Firefox 7, prévue pour la fin septembre, devrait être significativement plus rapide grâce aux progrès accomplis par ses équipes de développement pour chasser les bogues et les fuites de mémoires qui alourdissent le navigateur.

Il s'agit d'après le développeur Nicholas Nethercote des premiers résultats de l'initiative « MemShrink » qui mène une politique de tolérance zéro envers ce type de bogues qui ne font que dégrader les performances du navigateur sur ses dernières versions majeures (pour plus de détails sur cette initiative, lire ci-devant)

D'après les estimations de Nethercote, Firefox 7 devrait consommer 20 à 30 %, voir 50 % moins de mémoire vive, par rapport aux versions 6, 5 et 4 du navigateur, « cela signifie que Firefox 7 sera plus rapide (et même parfois drastiquement) et moins enclin aux crashs, notamment quand plusieurs sites sont ouverts ou quand Firefox tourne longtemps avant d'être redémarré ».

Nethercote admet que le navigateur soit actuellement un « gouffre de mémoire », mais tient tout de même à rappeler les performances honorables des versions 3, 3.5 et 3.6 qui s'y prenaient d'après lui mieux en terme de gestion de la mémoire. Ou qui le faisait en tout cas moins mal.

Ainsi, revient-il sur la régression marquée par l'arrivée de Firefox 4 qu'il met sur le dos du nombre important de nouvelles fonctionnalités, qui n'ont pas été toutes au point en terme de gestion de la mémoire sur leur première itération.

L'autre raison de cette régression, fait savoir Nethercote, est « le tuning suragressif des méthodes heuristiques relatives au ramasse-miettes JavaScript et à l'encodage des images ».

Des tests internes évoqués par Nethercote montrent par ailleurs une libération plus fiable de la mémoire non utilisée après la fermeture des onglets, et quand le navigateur entre en sous-utilisation.

Firefox 7 est actuellement sur Aurora et passera au canal bêta, moins instable, le 16 août prochain.

Firefox 7 Aurora est disponible en téléchargement sur cette page

Source : Blogs de Mozilla

Et vous ?

Avez-vous essayé Firefox 7 Aurora ? Et constaté une amélioration dans la gestion mémoire ? De quel ordre ?

Mozilla s'attaque à la consommation mémoire excessive de Firefox
Et lance le projet "MemShrink"

MemShrink est la nouvelle initiative de la fondation Mozilla destinée à réduire l'empreinte mémoire de Firefox, véritable talon d'Achille du navigateur populaire.

La fondation se décide donc enfin à prendre au sérieux ce problème constaté et décrié par de nombreux utilisateurs.
Un problème compliqué sur les dernières versions majeures du navigateur au lieu d'être atténué de l'aveu même de Johnny Stenback, développeur finlandais de Mozilla, à l'origine de ce projet.

Cette fois, il ne s'agit pas de continuer de corriger les fuites de mémoire rapportées (memory leak), mais de revoir dans une approche « agressive » la gestion des fuites de mémoire dans son ensemble pour une utilisation plus économe.

« Ça devient de plus en plus clair les derniers mois que nous avons un besoin pressant de nous occuper de l'augmentation de l'utilisation de mémoire dans Firefox », déclare Stenback sur le mailing liste de Mozilla.

Dans le cadre de ce projet, l'équipe se réunira dans un premier temps hebdomadairement pour étudier les idées, faire le tri des bogues et assigner chacun à un développeur : « il est vachement clair maintenant que le problème est beaucoup trop sérieux pour qu'un développeur puisse le régler tout seul », reprend Stenback.

Sur le Wiki où est détaillée la feuille de route du projet, le but de MemShrink est clairement défini : « amener le nombre de fuites de chaque version de Firefox à zéro, et le garder à zéro ! »

Les utilisateurs de Firefox, notamment ceux qui ne disposent que peu de RAM, se plaignent régulièrement sur le support du navigateur et les différents forums d'entraide, de la tendance qu'a le navigateur à ne pas libérer suffisamment de mémoire vive après la fermeture des onglets.

En tout cas, le travail entrepris là par la fondation ne sera pas une mince affaire, puisqu'il ne dépend pas que de la consommation mémoire du code écrit par les développeurs de Mozilla : le JavaScript des sites part souvent dans des boucles récursives et d'autres types de cycles accaparant la mémoire vive et l'utilisation du CPU. Cette gestion devra être optimisée aussi.

La séparation plus ou moins nette des processus depuis la version 3.6 de Firefox n'a pas suffi jusque-là à éradiquer ce problème.

Le gain espéré par la fondation à ce sujet pourrait par ailleurs avoir un impact positif sur les performances du navigateur en réduisant le recours au cache et à la mémoire virtuelle paginée.

Le groupe MemShrink prévoit d'intégrer des structures de données plus économes et vise notamment à éradiquer les « vraies fuites » où les cases mémoire perdues ne peuvent plus être récupérées, et les cas où la mémoire occupée inutilement n'est récupérée qu'en cas de fermeture des pages, onglets ou processus.

Évidemment, les utilisateurs Firefox Mobile (alias Fennec) seront les premiers à bénéficier des progrès promis par MemShrink.

Source : le groupe mozilla.dev.platform, Wiki du projet

Et vous ?

L'augmentation de l'utilisation de mémoire sur Firefox est-elle d'après vous pire qu'avant ?
Quelles options s'offrent d'après vous à la fondation pour résoudre ce problème ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de transgohan
Expert éminent https://www.developpez.com
Le 11/08/2011 à 9:16
Citation Envoyé par vintz72 Voir le message
Un peu gratuit comme argument, ça... j'ai pour ma part plutôt des exemples inverses : un serveur C réécrit en C++ qui n'avait alors plus de problème de fuite mémoire.
C'est que le code C était dégueulasse... Bref c'est tout aussi gratuit.
6  1 
Avatar de Idelways
Expert éminent sénior https://www.developpez.com
Le 11/08/2011 à 0:37
Firefox 7 : vers un navigateur 20 à 30 % plus économe en mémoire vive
Premiers résultats du projet MemShrink

Mise à jour du 10 août 2011 par Idelways

Mozilla Firefox 7, prévue pour la fin septembre, devrait être significativement plus rapide grâce aux progrès accomplis par ses équipes de développement pour chasser les bogues et les fuites de mémoires qui alourdissent le navigateur.

Il s'agit d'après le développeur Nicholas Nethercote des premiers résultats de l'initiative « MemShrink » qui mène une politique de tolérance zéro envers ce type de bogues qui ne font que dégrader les performances du navigateur sur ses dernières versions majeures (pour plus de détails sur cette initiative, lire ci-devant)

D'après les estimations de Nethercote, Firefox 7 devrait consommer 20 à 30 %, voir 50 % moins de mémoire vive, par rapport aux versions 6, 5 et 4 du navigateur, « cela signifie que Firefox 7 sera plus rapide (et même parfois drastiquement) et moins enclin aux crashs, notamment quand plusieurs sites sont ouverts ou quand Firefox tourne longtemps avant d'être redémarré ».

Nethercote admet que le navigateur soit actuellement un « gouffre de mémoire », mais tient tout de même à rappeler les performances honorables des versions 3, 3.5 et 3.6 qui s'y prenaient d'après lui mieux en terme de gestion de la mémoire. Ou qui le faisait en tout cas moins mal.

Ainsi, revient-il sur la régression marquée par l'arrivée de Firefox 4 qu'il met sur le dos du nombre important de nouvelles fonctionnalités, qui n'ont pas été toutes au point en terme de gestion de la mémoire sur leur première itération.

L'autre raison de cette régression, fait savoir Nethercote, est « le tuning suragressif des méthodes heuristiques relatives au ramasse-miettes JavaScript et à l'encodage des images ».

Des tests internes évoqués par Nethercote montrent par ailleurs une libération plus fiable de la mémoire non utilisée après la fermeture des onglets, et quand le navigateur entre en sous-utilisation.

Firefox 7 est actuellement sur Aurora et passera au canal bêta, moins instable, le 16 août prochain.

Firefox 7 Aurora est disponible en téléchargement sur cette page

Source : Blogs de Mozilla

Et vous ?

Avez-vous essayé Firefox 7 Aurora ? Et constaté une amélioration dans la gestion mémoire ? De quel ordre ?
2  0 
Avatar de vintz72
Membre actif https://www.developpez.com
Le 11/08/2011 à 9:12
Citation Envoyé par iznogoudmc Voir le message
Vous voulez optimiser l'utilisation de la RAM ? Tout simple : abandonnez la POO !
Un peu gratuit comme argument, ça... j'ai pour ma part plutôt des exemples inverses : un serveur C réécrit en C++ qui n'avait alors plus de problème de fuite mémoire.
2  0 
Avatar de nirgal76
Membre chevronné https://www.developpez.com
Le 11/08/2011 à 11:48
Citation Envoyé par Freem Voir le message
En C comme en C++ on peut avoir des fuites de mémoires.

Si le type qui fait un new/malloc()/calloc() ne delete/free() pas, ben memory leak...

J'aime ces 2 langages, et on peut faire du propre avec les 2 (pour ce qui est C et de la POO je me souviens avoir vu un article ou le gars s'amusait à réinventer la roue (il le disait lui-même) et faisait de la POO en C avec héritage et tout le tintouin).

Non, ce qu'il faut à l'équipe de FF si ils ne savent pas gérer la mémoire, c'est utiliser un langage conçu pour ceux qui ne sont pas rigoureux: le JAVA (que j'ai en horreur)
Les smart pointers sont là en c/c++ pour éviter d'avoir à faire (et donc d'oublier) les delete, pas besoin d'aller faire du java et autres langages à garbage collector si tu ne les aime pas. En plus, l'avantage des smart pointers sur les garbage collector, c'est que tu garde une certaine maitrise du moment où seront liberés les pointeurs (=> meilleur gestion mémoire et gain de performance si tu le fais quand il faut).
Pour ce qui est de la POO en C, si je me rappelle bien, c'est ce que faisaient les tous premiers compilateurs c++, précompiler le langage C++ en C et ensuite, passer le résultat dans un compilateur C.
3  1 
Avatar de nirgal76
Membre chevronné https://www.developpez.com
Le 11/08/2011 à 15:48
Citation Envoyé par Uther Voir le message
Les smart pointers sont très loin d'éviter tous le problèmes : les auto_ptr sont une blague, les shared_ptr s'ils sont meilleurs ne détectent pas le cas le plus problématique : les références circulaires.

Donc non en C++, comme en C ou même Java, il faut toujours réfléchir a la mémoire, même si c'est plus simple avec un GC : il suffit de ne pas garder de références inutiles.
Il n'y a pas les weak_ptr (associés aux shared_ptr) dans boost pour s'affranchir des problèmes de références circulaires ?
je parle au conditionnel car je n'ai jamais eu à me préoccuper de references circulaires. Si le code est bien architecturé, ça doit rarement arriver (j'ai bien dit rarement, pas jamais).
Mais bon, même si ça règle ce problème, je suis d'accord avec toi, il faut toujours réfléchir à la mémoire, c'est bien pour ça que j'aime le C++, ça me permet de garder un contrôle total sur ce que je fais. Si l'on est rigoureux, ce n'est pas un langage plus dangereux qu'un autre, c'est même l'inverse (quand tu tombe pas sur des bugs du compilo (comme celui de BCB 2010 que j'utilise au boulot). Mais bon, on s'éloigne du sujet de la news
2  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 11/08/2011 à 11:51
Comme toutes les version a venir, beaucoup de petites choses mais rien de révolutionnaire. Il y aura entre autre :
- support de nouvelle technologies "HTML 5" avec notamment le retour de Websockets.
- une fenêtre pour régler les autorisations par site web mieux organisée
- beaucoup de corrections de bug
- améliorations de performance(notamment le démarrage à froid)
- améliorations de la gestion mémoire
- ...
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 11/08/2011 à 14:33
Citation Envoyé par nirgal76
Les smart pointers sont là en c/c++ pour éviter d'avoir à faire (et donc d'oublier) les delete, pas besoin d'aller faire du java et autres langages à garbage collector si tu ne les aime pas.
Les smart pointers sont très loin d'éviter tous le problèmes : les auto_ptr sont une blague, les shared_ptr s'ils sont meilleurs ne détectent pas le cas le plus problématique : les références circulaires.

Donc non en C++, comme en C ou même Java, il faut toujours réfléchir a la mémoire, même si c'est plus simple avec un GC : il suffit de ne pas garder de références inutiles.
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 11/08/2011 à 16:17
En effet, mais ça veut dire qu'il faut que tu aies réfléchis au problème pour utiliser les weak_ptr au bon endroit. On en revient donc au fait que non, ce n'est pas tout automatique et qu'il faut bien penser à ce que l'on fait.
1  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 14/06/2011 à 0:10
Citation Envoyé par Idelways Voir le message
L'augmentation de l'utilisation de mémoire sur Firefox est-elle d'après vous pire qu'avant ?
Oui. Utilisant Firefox depuis la version 3.0, je n'avais pas spécialement remarqué cela jusqu'à l'arrivée de la v4.0. Firefox est désormais un gouffre à RAM, et quelques onglets ouverts suffisent à le faire ramer. Face à ce problème, je trouve même que Linux résiste mieux que Windows.
1  1 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 14/06/2011 à 8:14
Quelle bonne nouvelle ! J'en ai en effet marre de voir le process monter à plus de 800mio alors que le seul pauvre onglet qu'il me reste d'ouvert n'est autre que celui de mon moteur de recherche favori...

Et le pire c'est d'entendre le PC de ma mère qui swap lorsqu'elle navigue depuis plus de deux heures sur le net... (vieux PC faut tout de même préciser )
1  1