Depuis quelques versions de Firefox (3.5) il est fréquent de constater que celui-ci consomme une quantité astronomique d'espace mémoire après une certain temps d'utilisation. En consultant le gestionnaire des tâches et en fonction de la RAM présente sur la machine cela peut monter très, très haut. A un point qu'il arrive un moment où Firefox ne répond plus et il faut alors le rebooter. Bon à ce sujet ne pas confondre les plantages purs et durs avec des hoquets de fonctionnement. Apparemment le problème serait rencontré également sous Mac ? Toutes infos sont les bienvenues si vous rencontrez ce genre de problème.
La mémoire devient-elle abusive !
En creusant un peu le sujet, on trouve un article intéressant sur le fanzine de mozilla, Mozillazine ... Reducing Memory Usage ou Firefox memory usage sur le blog.pavlov.net. En fait, on constate que si Firefox a besoin uniquement de 100 à 150 Mb d'espace pour fonctionner correctement, celui s'octroie bien plus si le système est largement équipé en RAM et permet d'attribuer de l'espace à la demande.
Le mode de fonctionnement de Firefox peut devenir rapidement gourmand, et ce, toujours dans un soucis d'améliorer notre confort d'expérience utilisateur. Par exemple, en pré-chargeant les pages dont le lien est susceptible d'être cliqué, en gardant un maximum d'élément sous le coude, en mémorisant un grand nombre d'onglet que l'on vient de fermer, en donnant de l'air aux éléments utilisant des modules de fonctionnement, en gardant accessible l'historique de la session de navigation, ... bref tout autant de fonctionnalités qui s'en donnent à cœur joie lorsque la RAM coule à flot. Combien consomme Firefox ? ... le plus simple est de taper about:memory dans l'URL.
Que faire dans un premier temps ?
Ne pas exagérer l'utilisation d'extensions et add-ons.
De manière générale il va être préférable d'agir sur plusieurs points pour remédier au problème de consommation de ressources et de mémoire. Commençons déjà par balayer devant notre porte, simplement en désactivant toutes les extensions que nous n'utilisons pas au quotidien. Il est vrai que la communauté propose un maximum de perle d'add-ons que l'on s'empresse d'installer et puis qu'on oubli même jusqu'à son existence... donc un petit tour du coté du menu Outils > Modules complémentaires et en un rapide coup d'œil faisant un tri sélectif ne pas hésiter à sélectionner l'option 'désinstaller'. Penser à vérifier si cela n'est pas déjà fait si vous utilisez bien la dernière version des modules que vous conservez, en cliquant sur le bouton 'rechercher des mises à jour'.
Faites attention aux fenêtres et onglets.
Nous avons également la mauvaise habitude d'ouvrir systématiquement des nouvelles fenêtres et nous nous empressons de les remplir d'onglets. Il est vrai que cela est bien pratique, mais lorsque l'on sait que Firefox anticipe la mise en mémoire de nos historique de navigation, incluant la fermeture d'onglets et des liens que chaque page peut nous amener à ouvrir on va rapidement voir la courbe prendre la tangente et puiser dans la réserve. Soyons raisonnable sur notre appétit à consommer de l'information et restons humble sur le volume de pages ouvertes en simultanées.
Coté préférences, il y a toujours quelques vis à resserrer.
Bien que cela n'est pas d'impact direct sur la mémoire vive consommée, il est souvent de bon ton de limiter, ou minimiser, la mise en cache de certains éléments comme par exemple la durée de conservation de l'historique de navigation, surtout si vous êtes un fervent amateur de la navigation multi-onglet, multifenêtre. Par contre, si vous téléchargez fréquemment, pensez à ne pas conserver l'historique des téléchargements car celui-ci peut avoir un impact assez fort sur la stabilité de Firefox surtout si vous chargez de gros fichiers. Pour ces deux opérations rendez vous dans les préférences depuis le menu Outils > Options et sélectionnez l'onglet Vie Privé.
Dans la partie Historique, placez le menu déroulant sur l'option Utiliser les paramètres personnalisés pour l'historique. Cela vous donnera accès à certains réglages plus fins, comme la possibilité de passer à 30 jours l'historique de navigation ainsi que la possibilité de désactiver l'historique de téléchargement.
about:config, ou comment optimiser notre navigateur.
Depuis déjà quelques années, les férus utilisateurs de Firefox ne cessent d'écrire des articles à propos des réglages fin du navigateur et principalement sur les subtilités du fichier about:config. Inspirons nous de l'expertise de certains pour qui ce fichier n'a presque plus de secret et affinons les réglages. Le web regorge de pages nous détaillant les réglages à effectuer, par contre n'hésitez pas a recouper les informations car certains bien que publié récemment font état de propriétés devenus obsolètes, ou indiquent des valeurs qui n'entrent pas dans la fourchette prise en compte. Toutes ne sont d'ailleurs pas spécialement renversantes en changement comme le précise les fiches décrites par mozillazine.
Entrouvrons donc le capot du navigateur et entre quelques adaptations de valeurs ou ajout de nouvelles propriétés essayons de calmer, ou du moins de réduire, l'appétit du renard musqué qui veille. Profitons en au passage pour apporter deux trois ajouts en ce qui concerne sa vélocité d'affichage.
Attention, il s'agit là de préférences avancées et ce genre de manipulation peut s'avérer être irréversible pour la stabilité ou la sécurité de Firefox. Si tel était le cas vous pourriez alors être obligé de devoir désinstaller complètement Firefox et le ré installer. Sans compter qu'il vous faudra au préalable noter l'ensemble des extensions que vous utilisez afin de pouvoir les réinstaller. Il vous faudra également archiver l'ensemble de vos favoris. (Voir la note in fin de page sur la possibilité de réinitialiser Firefox).
browser.cache.memory.enable
Commençons par nous assurer que la mise en mémoire de l'historique de navigation soit bien activé, surtout que le décodage des images ou les visites d'espaces sécurisés gourmands en ressources sont pris en compte par cette propriété. Dans la majeure partie des situations il est conseillé de laisser cette valeur sur true.
browser.cache.memory.capacity
Cette propriété ne devrait pas exister si vous n'avez pas déjà paramétré manuellement la configuration de Firefox. Donc pour la créer rien de plus simple, faites un click droit dans la partie où s'affiche l'ensemble des propriétés de la page about:config et sélectionnez 'Nouvelle > Valeur numérique' dans le menu déroulant. Saisissez le nom de la propriété à savoir browser.cache.memory.capacity dans la boite de dialogue puis entrez la valeur que vous lui affectez dans la deuxième boite de dialogue qui s'ouvre une fois la première validée. Nous avons opté pour 8000.
browser.sessionhistory.max_entries
Cette propriété permet de définir le nombre de pages mises en mémoire durant notre navigation. Par défaut la valeur est de 50 ce qui peut être beaucoup, on va donc réduire ce nombre à 15 ou 20 qui devrait être largement suffisant. Filtrez sur le mot session afin de localiser plus facilement la propriété à modifier, une fois trouvé, double cliquez sur la ligne et entrez la valeur de votre choix dans la boite de dialogue qui s'ouvre. 15, 20...
browser.sessionhistory.max_total_viewers
Par défaut cette propriété est définie sur -1 ce qui laisse le soin à Firefox de déterminer le nombre de page mis en mémoire en fonction de la quantité de mémoire vive présente sur la machine. Attention de ne pas confondre cette mise en mémoire avec la mémoire cache. Il s'agit de deux stockages différents et celui-ci optimise le confort de navigation sur des pages récemment visitée. En fonction de votre besoin de confort et de la capacité de mémoire dont vous disposez, libre à vous de modifier cette valeur en entrant directement le nombre de pages maximum que vous octroyez à la mise en mémoire. De notre coté, nous avons opté pour 0.
browser.sessionstore.max_tabs_undo
Il est vrai que la possibilité de rouvrir un onglet fermé par inadvertance est une option dont on ne se passe plus. Le souci est que tout ces onglets fermé viennent également encombrer l'espace et occuper de la mémoire. Par défaut, la valeur de cette propriété est de 10 onglets potentiellement ré ouvrable, en fonction de vos habitudes de navigation et du confort que vous recherchez, libre à vous de modifier cette valeur. N'oublions pas qu'il est toujours possible d'avoir recours à l'historique de navigation dans le cas où l'on opte pour une valeur très faible. Nous avons opté pour 4. Dans la même ligné il existe la même propriété browser.sessionstore.max_windows_undo adapté aux fenêtres, nous avons opté pour une valeur de 2
browser.sessionstore.interval
Cette propriété permet de définir la fréquence à laquelle Firefox sauvegarde les informations relative à votre session de navigation, afin que vous puissiez redémarrer dans les mêmes conditions lorsque vous relancez le navigateur après un crash. Il est vrai que si l'on quitte volontairement le navigateur ou si l'on redémarre pour prendre en compte une nouvelle installation ou configuration, l'enregistrement de la session se fera de manière explicite... donc il est possible d'augmenter le délai de 10 secondes par défaut à une valeur plus importante. La définition se faisant en milliseconde, nous avons opté pour 60000.
config.trim_on_minimize
Par défaut Firefox ne laisse pas la main à Windows pour récupérer de la mémoire si l'application a été minimisé. Il est possible de modifier cette valeur en créant la propriété de toute pièce. Donc click droit dans la fenêtre du navigateur où s'affiche l'ensemble des propriétés et choisissez 'Nouvelle > Valeur Booléenne'. Nommez la propriété config.trim_on_minimize et affectez y la valeur true.
network.http.pipelining ou network.http.proxy.pipelining
En fonction que vous utilisiez un proxy ou non, rapprochez vous de cette propriété afin d'activer la gestion du HTTP pipelining. Si le serveur qui délivre la page utilise HTTP 1.1 et supporte pipelining, cela permettra de regrouper un certains nombre de requêtes HTTP et de ce fait augmentera considérablement les performances de téléchargement d'une page. Cette propriété est réglé par défaut sur false, il suffit de la filtrer et de la régler sur true.
network.http.pipelining.maxrequests
Dans la même lignée et allant de pair avec la propriété précédente, cette propriété permet de définir le nombre de requêtes regroupée au maximum. Par défaut la valeur est de 4, vous pouvez la pousser à son maximum de 8. Notez au passage qu'une valeur de 1 reviendrait à initialiser la propriété précédente à false.
nglayout.initialpaint.delay
Bien que cette propriété ait une valeur par défaut très faible (250 ms) il est possible de la définir au minimum afin d'accélérer l'affichage d'une page. En fait lorsque les informations d'une page commencent à arriver, il n'y a pas forcément d'éléments significatifs et en ce sens Firefox attend un laps de temps avant d'afficher ce contenu de manière incrémentale. Pour initialiser cette valeur à 0, il faut commencer par créer la propriété avec un click droit dans la fenêtre du navigateur où s'affiche l'ensemble des propriétés et choisissez 'Nouvelle > Valeur Numérique'. Nommez la propriété nglayout.initialpaint.delay et affectez y la valeur 0.
En savoir plus
Vous trouverez d'autres entrées de about:config ou d'autres préférences éditables, n'hésitez pas également de vous rapprocher de cet excellent article sur la modification de votre configuration. Vous pouvez une fois vos paramètres modifier listez l'ensemble de cette personnalisation, en ne filtrant pas les propriétés et en les classant pas Statut.
Si toutefois, vous faisiez une erreur de manipulation, avant d'en venir à la solution radicale de la réinstallation complète de Firefox, essayez de réinitialiser l'application. Pour cela lancer depuis l'interface de commande ou le terminal de votre système d'exploitation la ligne de commande firefox.exe -safe-mode ou firefox -safe-mod en fonction de votre OS. Lors du démarrage, vous accéderez alors à une boite de dialogue vous permettant de cocher une instruction de réinitialisation des préférences par défaut de l'application.






