Standblog - Mot-clé - ie7Tristan Nitot sur la technologie, l'Internet et les libertés numériques2024-03-19T18:09:38+01:00Tristan Nitoturn:md5:82ecb6a121c45d09243dc58cde2a1c14DotclearConsommation de mémoire dans Firefox 3 Beta 4urn:md5:b9583795a320e0da24a7fb52adb9174f2008-03-12T16:28:00+01:002008-03-12T20:46:16+01:00TristanNavigateursfx2fx3ie7memoire <p>Mon collègue <a href="http://blog.pavlov.net/" hreflang="en">Stuart 'Pavlov' Parmenter</a> vient de publier un très long <a href="http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/" hreflang="en">billet sur la consommation de mémoire des navigateurs</a>, et de Firefox 2 et 3 en particulier. Il explique comment Mozilla a travaillé pour réduire la consommation de mémoire de Firefox. Je vous fait grâce des détails, et je résume les points clés en fin de billet.</p>
<p>Le plus intéressant, c'est que la consommation de mémoire de Firefox 3 (Beta 4) est bien meilleure que celle de Firefox 2 (laquelle était déjà considérablement meilleure que celle d'un navigateur connu dont je tairais le nom parce que j'ai dit que je ne dirais plus de mal d'Internet Explorer 7 aujourd'hui <img src="/dotclear2/themes/default/smilies/wink.png" alt=";-)" class="smiley" /></p>
<p><a href="http://www.flickr.com/photos/nitot/2328286441/"><img src="http://farm3.static.flickr.com/2142/2328286441_44ec394c5b.jpg" alt="Utilisation mémoire dans Firefox 2, Firefox 3 Beta 4 et un autre navigateur" /></a></p>
<p>La méthode utilisée est la suivante (traduction par mes soins) :</p>
<blockquote><p>Nous avons chargé 29 pages Web différentes dans 30 fenêtres sur 11 cycles (soit un total de 319 chargements). Nous ouvrons une nouvelle fenêtre à chaque chargement de page, en fermant la fenêtre la plus ancienne quand on atteint le nombre de 30 fenêtres. A la fin, nous fermons toutes les fenêtres sauf une, on laisse le navigateur quelques minutes pour voir si la mémoire est récupérée et les caches à court terme vidés, etc. Il y a une attente de 3 secondes entre chaque chargement de page de façon à ce que chaque navigateur prenne la même durée de test. Nous avons utilisé le serveur proxy intégré dans <a href="http://wiki.mozilla.org/StandaloneTalos" hreflang="en">standalone Talos</a> pour que ça soit toujours le même contenu qui est servi.</p></blockquote>
<p>Pavlov donne les liens pour que chacun puisse tester ceci sur sa propre machine.</p>
<p>La conclusion de Pavlov est la suivante :</p>
<ul>
<li>Tous les navigateurs augmentent leur consommation de mémoire au fil du temps, mais pour Firefox 3, c'est quasiment plat.</li>
<li>Le sommet (consommation maximale) pour Firefox 3 est plus bas que quand Firefox 2 revient au repos !</li>
<li>A la fin, Firefox 3 occupe 140 Mo de moins que Firefox 2, soit 60% de moins.</li>
<li><del>Firefox 3 finit à </del> par charité pour Bill (qui vient d'être recalé à la 3eme place au classement des gens les plus riches du monde) je ne vais pas traduire cette phrase, le "pauvre" a déjà eu assez de mauvaises nouvelles comme cela ce mois-ci <img src="/dotclear2/themes/default/smilies/laugh.png" alt=":-D" class="smiley" /></li>
</ul>
<h3>Comment est-on arrivé à ce résultat ?</h3>
<p>Pavlov rentre dans beaucoup de détails, et tout est documenté dans bugzilla, mais voici les grandes lignes, pour ceux qui veulent en savoir plus, sans pour autant plonger dans les <a href="http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/" hreflang="en">explications complètes en anglais</a> :</p>
<ol>
<li><em>Réduction de la fragmentation mémoire</em>. Pour Windows et Linux, nous utilisons maintenant <a href="http://www.canonware.com/~ttt/2007/11/firefox-fragmentation.html" hreflang="en">jemalloc, de Jason Evans</a>, auquel nous avons contribué, ce qui <a href="http://www.canonware.com/~ttt/2008/01/perceived-jemalloc-memory-footprint.html" hreflang="en">devrait profiter à FreeBSD</a>.</li>
<li><em>Suppression de cycles avec le "Cycle Collector"</em>. Les cycles, c'est quand deux objets en mémoire, qui ne sont plus utilisés (parce qu'on a fermé la page à laquelle ils appartiennent) se référencent mutuellement, ce qui fait que le logiciel pense qu'ils sont encore utilisés. Le "Cycle Collector" a pour objectif de détecter de telles situations et d'y remédier.</li>
<li><em>Réglage des caches</em>, avec des caches qui sont maintenant associés à des timers. Si vous n'accédez pas à une page pendant plus de 30 minutes, cela signifie probablement que vous n'allez pas y revenir avant quelque temps. On libère donc la mémoire cache.</li>
<li><em>changements dans la façon de stocker les données des images</em>, avec un timer sur le cache des images JPEG, et un stockage différent des GIF animés</li>
<li><em>La chasse aux fuites (leaks)</em>. 400 bogues de fuite mémoire ont été corrigés, et création d'outils pour détecter les fuites.</li>
</ol>
<p>Pavlov explique ensuite à quel point il est difficile de mesurer la quantité de mémoire effectivement utilisée. En gros : Linux et Vista font du bon boulot, là ou OS X et XP sont beaucoup moins précis (et surestiment la consommation)</p>Actu des standards : Formats bureautiques ouverts et Standards dans IE7urn:md5:473a50b82ad3300b3c80f3bbd3f8e9cc2007-02-07T16:13:00+01:002007-02-07T16:25:46+01:00TristanStandardsie7odftexas <ul>
<li><a href="http://formats-ouverts.org/blog/2007/02/06/1097-et-de-3-pour-les-etats-americains-qui-exigent-des-formats-ouverts" hreflang="fr">Le Texas, 3eme état américain exigeant les formats ouverts</a>, après le Massachusetts et le Minnesota. Pour une nouvelle, c'est une bonne nouvelle !</li>
<li><a href="http://developpeur.journaldunet.com/tutoriel/dht/070206-ie6-ie7-support-standards/0.shtml" hreflang="fr">IE7 : ce qui change pour les standards du Web</a>.
<ul>
<li>"le support HTML entre IE6 et IE7 est largement inchangé" ;</li>
<li>"En définitive, IE7 n'apporte pas de modification fondamentale côté langages à balises..."</li>
<li>"le support CSS s'est certes amélioré, mais en comparaison à celui des autres navigateurs modernes, les améliorations sont toutes relatives."</li>
<li>"Le DOM, de son côté, était bien en manque d'une réévaluation." "IE7, ici encore, n'est pas d'un grand secours (...)".</li>
<li>Mais tout n'est pas noir, surtout coté JavaScript : "Le JavaScript d'Internet Explorer se nomme JScript, mais en dehors de cela il s'agit d'une implémentation assez fidèle du standard ECMA Script - même si elle est moindre que celle de Firefox, forcément : le concepteur d'ECMA Script travaille pour Mozilla...". Et même pour la transparence du PNG : "une dernière doléance, fréquemment exprimée de nombreux développeurs, a été intégrée au moteur de rendu Trident qui anime IE7 : le support de la couche alpha pour les images PNG."</li>
</ul></li>
</ul>