Firefox 7 bénéficiera d'une consommation mémoire moindre

Premiers résultats de l'initiative MemShrink 109
Vincent Hermann
Depuis la version 3.0 de Firefox, la consommation en mémoire vive du navigateur est devenue un reproche courant envers Mozilla. Même si plus aucun navigateur récent ne peut plus se targuer d’être léger et que des efforts ont été faits, ces critiques ont la vie dure et sont encore particulièrement fondées. Mozilla le sait et a annoncé récemment une initiative à ce sujet. Elle donnera ses premiers résultats concrets dans Firefox 7.

La consommation mémoire de Firefox est presque devenue un faux problème tant elle ne permet plus au navigateur de se distinguer vis-à-vis de ses concurrents. Internet Explorer et Chrome notamment, en isolant chaque onglet dans un processus, peuvent dévorer rapidement des centaines de mégaoctets lorsque l’on ouvre de nombreux onglets. Mais Mozilla sait que des améliorations sont possibles, surtout que son Firefox n’isole pas les onglets. Premier terrain d’action : le JavaScript.

firefox 

La pile JavaScript utilise des compartiments de mémoire de 1 Mo chacun. Lorsque les objets qui y sont placés pour traitement disparaissent, ces compartements sont supprimés. Il arrive pourtant très souvent que des objets à très longue durée y soient placés. Or, si tous les objets disparaissent sauf un, cela suffit à garder le compartiment actif.

Firefox lui-même fait régulièrement appel à JavaScript pour ses propres besoins, le langage servant à l’implémentation de certaines fonctionnalités. Ces objets peuvent durer le temps d’une session complète tant que l’application n’est pas fermée. Fermer tout un lot d’onglets peut donc ne pas apporter la libération espérée de mémoire vive. L’un des développeurs, Gregor Wagner, a donc proposé une idée pour réduire ce phénomène de fragmentation de la pile.

Les objets JavaScript vont être triés en deux catégories :
  1. Ceux relatifs à Firefox lui-même
  2. Tous les autres, notamment les objets créés par les sites web
Les résultats semblent très prometteurs : en fermant un groupe d’onglets, la consommation mémoire restante est passée de 108 à 21 Mo, soit une réduction de plus de 80 %. Ce n’est qu’un début et des améliorations sont encore possibles. Les intéressés pourront obtenir plus de détails dans les explications (en anglais) de Nicolas Nethercote de Mozilla.

Ce premier pas pour la réduction de la mémoire prendra place dans Firefox 7, attendu pour septembre. Nous vous rappelons également que la bêta de Firefox 6 est maintenant imminente.