<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Performance web &#187; opera</title>
	<atom:link href="http://performance.survol.fr/avec/opera/feed/" rel="self" type="application/rss+xml" />
	<link>http://performance.survol.fr</link>
	<description>Quelques mots pour des sites web rapides</description>
	<lastBuildDate>Fri, 18 Jun 2010 12:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Quel avenir ?</title>
		<link>http://performance.survol.fr/2008/12/quel-avenir/</link>
		<comments>http://performance.survol.fr/2008/12/quel-avenir/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 11:00:34 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[John Resig]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Internet Explorer]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[parallélisation]]></category>
		<category><![CDATA[pipelining]]></category>
		<category><![CDATA[Steve Souders]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=323</guid>
		<description><![CDATA[Vouloir optimiser le code et régler les performances, est-ce un sujet qui sera obsolète bientôt ? La question peut-être posée autrement : n&#8217;est-on pas en train de compenser les défauts des navigateurs dans quelques millions de sites avec des résultats &#8230; <a href="http://performance.survol.fr/2008/12/quel-avenir/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vouloir optimiser le code et régler les performances, est-ce un sujet qui sera obsolète bientôt ?</p>
<p>La question peut-être posée autrement : n&#8217;est-on pas en train de compenser les défauts des navigateurs dans quelques millions de sites avec des résultats discutables au lieu de fixer les quelques navigateurs ?</p>
<h3>Sus au navigateur !</h3>
<p>Ma première réponse habituelle est de dire que si, nous sommes, pour bonne partie, en train de compenser les manques et les défauts de nos navigateurs. C&#8217;est le cas quand on parle d&#8217;agréger les contenus (au lieu d&#8217;utiliser le <a href="http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/">HTTP pipelining</a>), quand on parle de <a href="http://performance.survol.fr/2008/04/javascript-a-sa-place/">déplacer les javascript en fin de document</a> (au lieu de <a href="http://performance.survol.fr/2008/08/javascript-non-bloquant/">laisser le navigateur les télécharger en parallèle</a>) ou quand on parle de <a href="http://performance.survol.fr/2008/04/limitation-du-nombre-de-requetes/">séparer les contenus statiques sur plusieurs domaines</a> (pour exploiter au mieux la configuration de nos navigateurs).</p>
<h3>Vive le navigateur !</h3>
<p>Heureusement il y a beaucoup d&#8217;activité actuellement chez les éditeurs logiciels. Opera, Apple/Webkit, Mozilla et même Microsoft font des efforts. La génération qui arrive va avoir des navigateurs avec beaucoup moins de goulots d&#8217;étranglement côté performances, et un ressenti de vitesse non atteint jusque là : Les javascript vont enfin pouvoir se télécharger en parallèle et ne plus bloquer le rendu, on ouvre plus de requêtes simultanées par serveur, et on tente quelques optimisations.</p>
<p>C&#8217;est Steve Souders qui nous propose <a href="http://stevesouders.com/ua/">un petit tableau récapitulatif sur les possibilités de cette nouvelle génération de navigateurs</a> (que <a href="http://ejohn.org/blog/browser-page-load-performance">John Resig commente</a>). Tout n&#8217;est pas parfait mais vous noterez intuitivement une bonne dose de vert pour Microsoft Internet Explorer 8, Minefield 3.1 (qui est la version de Firefox en développement), et WebKit 4. Les cases faisant la différence entre ces trois là sont liées aux redirections et au prechargement, ce sont certainement les colonnes les moins importantes de la grille. Opera reste de côté tant qu&#8217;il ne permet pas de paralléliser les scripts, mais il y a tout lieu de penser que cela va s&#8217;arranger.</p>
<h3>Agissons maintenant</h3>
<p>Tout va bien, arrêtons tout parce que ça va être corrigé sur les navigateurs ? Surtout pas ! Tout simplement parce que vos utilisateurs et votre site ne peuvent pas attendre les multiples années nécessaires à ce que le parc des navigateurs soit mis à jour.</p>
<p>Bref, nous n&#8217;avons pas le choix. Le visiteur se moque de savoir que c&#8217;est la faute du navigateur, qu&#8217;un plus récent est en préparation, ou même qu&#8217;un plus récent est disponible en téléchargement. Lui voit que votre site est lent, agaçant, et peut être qu&#8217;en allant chez le concurrent ça sera mieux &#8211; à navigateur égal.</p>
<p>En attendant que toutes les versions actuelles des navigateurs soient remplacées, vous devez agir, quitte à agir en pompier pour corriger les défaillances de ces derniers.</p>
<h3>Surtout que c&#8217;est un peu notre faute</h3>
<p>Mais n&#8217;oubliez pas, derrière cette grille il y a encore beaucoup de choses qui sont de la responsabilité de l&#8217;intégrateur web ou de l&#8217;administrateur web. Je parle de cache, d&#8217;agrégation de contenu, de compression http, d&#8217;images en sprites, d&#8217;optimisations javascript, ou simplement d&#8217;ordonnancement des composants.</p>
<p>Ne croyez pas que même avec ces superbes moteurs de navigateur qui arrivent, la performance deviendra un sujet obsolète.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/12/quel-avenir/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lessive et performance</title>
		<link>http://performance.survol.fr/2008/05/lessive-et-performance/</link>
		<comments>http://performance.survol.fr/2008/05/lessive-et-performance/#comments</comments>
		<pubDate>Fri, 30 May 2008 11:49:41 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[squirrelfish]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=35</guid>
		<description><![CDATA[La communication des éditeurs de navigateur ressemble plus en plus à celle des vendeurs de lessive, mais au moins on commence à voir l&#8217;importance des performances. Le navigateur le plus rapide au monde ! On apprend ainsi que Firefox 3 &#8230; <a href="http://performance.survol.fr/2008/05/lessive-et-performance/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La communication des éditeurs de navigateur ressemble plus en plus à celle des vendeurs de lessive, mais au moins on commence à voir l&#8217;importance des performances.</p>
<h3>Le navigateur le plus rapide au monde !</h3>
<p>On apprend ainsi que Firefox 3 est le navigateur le plus rapide au monde ! En France c&#8217;est bien sûr Tristan Nitot qui <a href="http://standblog.org/blog/post/2008/05/29/How-Firefox-3-performance-boost-makes-a-difference-in-the-real-world">relaie l&#8217;annonce</a> en prenant pour base <a href="http://blogs.zdnet.com/hardware/?page_id=1884">un billet du blog ZDNet qui compare javascript</a>.  </p>
<p>Il s&#8217;agit en fait des résultats d&#8217;un test de performance Javascript. Le test lui même, SunSpider, est publié par Apple via le projet webkit. Firefox 3.0rc1 y arrive effectivement en premier, à peu près à même niveau que Safari 3.1. Globalement les autres navigateurs en développement ou récents sont deux à trois fois plus lents (IE 8, Opera 9.2 &amp; 9.5b, Safari 3.0). Firefox 2 est même quatre à cinq fois plus lent, Internet Explorer 7 est presque dix fois plus lent.<span id="more-30"></span></p>
<h3>Versions de développements</h3>
<p>On fait valoir que le gain de Firefox 2 à Firefox 3 est très important pour les utilisations de tous les jours, mais dans la communication de nombreux sites ce qui transparaît que c&#8217;est parce que Firefox 3 est le plus rapide au monde. On oublie qu&#8217;en fait c&#8217;est Firefox 2 qui est étonnamment lent par rapport à tous les autres (Internet Explorer 7 mis à part).</p>
<p>Pire, de mon point de vue : on met en valeur Firefox 3 en &#8230; faisant la comparaison avec Internet Explorer 7. Firefox 3 est en version de développement, pourquoi ne pas alors être honnête et comparer avec la version de développement d&#8217;Internet Explorer ? la beta 1 est dans le graphique, et si la différence de performance reste importante en valeur absolue, elle n&#8217;a plus du tout le même impact pour l&#8217;utilisateur final. Internet Explorer 8b1 étant tout de même deux fois plus rapide sur ce test que Firefox 2 (et plus rapide que Firefox 3.0b1 si on veut prendre le même niveau d&#8217;évolution)</p>
<p>Du coup je ne peux de plus que m&#8217;étonner de l&#8217;absence des versions de développement Safari. Les versions de développement des autres navigateurs y sont et l&#8217;équipe webkit nous parle en permanence de grandes avancées à propos de Javascript et <a href="http://trac.webkit.org/wiki/SquirrelFish">Squirrelfish</a>. Ah, visiblement sur le même test les versions de développement de Safari avec le nouveau moteur javascript <a href="http://paste.lisp.org/display/61070">SquirrelFish est quatre fois plus efficace que le Safari 3.0</a>, soit presque 2 fois plus rapide que Safari 3.1 et encore 50%  rapide que le navigateur le plus rapide au monde (je parle de Firefox 3.0rc1 si vous me suivez bien).</p>
<h3>Des chiffres triés</h3>
<p>Alors en remettant dans le bon contexte :</p>
<ul>
<li>Dans les navigateurs en version de développement c&#8217;est Safari qui mène la danse, Firefox est derrière (50% plus lent), puis Opera 9.50b2 (3x plus lent) et enfin Internet Explorer 8b1 (4x plus lent).</li>
<li>Dans les navigateurs en version stable, c&#8217;est encore Safari 3.1 qui mène la danse, puis Opera 9.26 (2x plus lent), Firefox 2.0 (4x plus lent) et enfin Internet Explorer 7 (8x plus lent).</li>
</ul>
<p>Firefox navigateur le plus rapide au monde peut laisser le trophée à Safari, en tout cas sur ce test javascript. Le futur Firefox est même à peine plus performant que l&#8217;actuel Safari. On peut aussi voir que tous les navigateurs ont bien amélioré leurs performance, environ d&#8217;un rapport 4. Firefox ne fait donc pas exception. Seul Opera a fait moins d&#8217;avancées, mais à sa décharge il n&#8217;était pas mal placé et reste à des performances honorables.</p>
<p>La seule chose que je remarque dans le graphique ce n&#8217;est pas la performance de Firefox 3, s&#8217;est les extraordinaires contre-performances de Firefox 2 et Internet Explorer 7 (même si ça fait mal de voir les deux associés quand on parle de performance). Et la chose qui me manque dans le graphique c&#8217;est le futur Safari, qui fait une différence extraordinaire avec tous les autres.</p>
<h3>Vendeurs de lessive</h3>
<p>Je ne peux m&#8217;empêcher de regretter ces arguments de vendeurs de lessives. Mon futur navigateur en développement est le plus rapide au monde, à condition de ne pas compter ceux des autres. Ces avancées de performances sont un vrai bonus pour l&#8217;utilisateur, il ne s&#8217;agit pas de ça. Mais la communication est tronquée et de toutes façons peu aidante pour l&#8217;utilisateur.</p>
<p>Certes, Firefox 3 est proche d&#8217;une version finale donc il sera effectivement pendant quelques temps le navigateur le plus rapide au monde, mais je doute que ce soit ça l&#8217;important aux yeux de l&#8217;utilisateur, surtout sachant que les version de développement de Safari font déjà tourner le même code 50% plus vite.</p>
<p>Il fut un temps où le projet Mozilla était présenté comme une démo ou un prototype technologique. Je ne me rappelle plus exactement les termes mais l&#8217;esprit est bien celui là. Depuis l&#8217;arrivée de Firefox on a une communication qui devient &laquo;&nbsp;marketing produit&nbsp;&raquo; et qui ressemble à celle d&#8217;un vendeur de lessive (celle qui lave plus blanc que blanc). C&#8217;est dommage, surtout quand on voit que Safari/webkit, eux, arrive à concilier l&#8217;impératif d&#8217;avoir une communication promotionnelle par Apple/Safari et continue à avoir des publication relativement objectives et honnêtes sur les sujets techniques via webkit.</p>
<h3>Le fond</h3>
<p>Je n&#8217;ai pu m&#8217;empêcher de pousser un petit coup de gueule contre cette dérive marketing mais le fond n&#8217;est pas là. Le fond, l&#8217;important, il se retrouve aussi dans le billet de Tristan Nitot : Ces gains, quel que soit le navigateur, sont des gains très importants pour l&#8217;utilisateur. Là où vous attendiez un résultat, vous ne ferez que percevoir qu&#8217;il y a un délai. Là où vous perceviez un délai non gênant, vous aurez l&#8217;impression d&#8217;instantané. Un facteur 4 ou 5 c&#8217;est la différence entre lent et rapide, entre une application frustrante et une application agréable.</p>
<p>Préparez-vous à de grands changements de ce point de vue. Je regrette juste que les développeurs web et les éditeurs de sites web ne se soient pas encore rendus compte de l&#8217;importance des performances. Il y a en effet encore du boulot à faire du côté des sites eux-même, et pas qu&#8217;un peu.</p>
<p>Pour l&#8217;utilisateur ça peut être une révolution, et les éditeurs de navigateurs, eux, ne s&#8217;y trompent pas. Les performances sont devenus un argument promotionnel important. Malheureusement pour nous ça veut dire qu&#8217;il va falloir vérifier et douter de toutes les communications sur le sujet, qui seront encore moins objectives, honnêtes et exhaustives.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/05/lessive-et-performance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Pipelining : enchaîner les requêtes HTTP</title>
		<link>http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/</link>
		<comments>http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 10:56:18 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[pipelining]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[téléchargement]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=18</guid>
		<description><![CDATA[Le pipelining HTTP c&#8217;est faire gérer au serveur une file de requêtes. Le navigateur envoie plusieurs requêtes à la suite les unes des autres sans attendre la réponse du serveur. Le serveur renvoie alors les réponses dès qu&#8217;il les a, potentiellement &#8230; <a href="http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Le <a href="http://en.wikipedia.org/wiki/HTTP_pipelining">pipelining HTTP</a> c&#8217;est faire <a href="http://www.run.montefiore.ulg.ac.be/~martin/resources/pipelining/pipelining-tutorial.html">gérer au serveur une file de requêtes</a>. Le navigateur envoie plusieurs requêtes à la suite les unes des autres sans attendre la réponse du serveur. Le serveur renvoie alors les réponses dès qu&#8217;il les a, potentiellement en parallèle aux requêtes du navigateur. Non seulement on utilise le principe de la connexion persistante, mais on évite d&#8217;attendre la réponse précédente avant d&#8217;envoyer la suite. Pour chaque ressource à télécharger après la première, c&#8217;est un aller-retour réseau à rien faire qui est évité.<span id="more-16"></span></p>
<h3>Concrêtement</h3>
<p><img class="alignleft size-medium wp-image-17" title="Http pipelining" src="http://performance.survol.fr/wp-content/uploads/2008/04/http_pipelining-300x186.png" alt="" width="300" height="186" />Si on considère que nos douze ressources sont téléchargées par un seul fil d&#8217;exécution (ou que vous avez 24 ressources, donc deux fils à 12), vous épargnez 11 aller-retour. Dans notre exemple c&#8217;est 440 ms qui sont gagnées avec tout ça.</p>
<p>Le seul <a href="http://www.macosxhints.com/article.php?story=20030124065007237">défaut du pipelining</a> est qu&#8217;il faut bien le régler dans le navigateur. Il peut devenir contre-performant dans un seul cas : si le navigateur enchaîne ses requêtes sur une seule connexion alors qu&#8217;il aurait pu les balancer sur plusieurs connexions simultanées. Il faut juste s&#8217;assurer que le navigateur préfère utiliser au maximum ses connexions multiples avant d&#8217;enchaîner les requêtes.</p>
<h3>Le support</h3>
<p>Le pipelining une fonctionnalité prévue par HTTP 1.1 (protocole que maintenant quasiment tous les serveurs web et proxys affirment implémenter). <a href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">L&#8217;activer est un gain important</a> pour le client, avec très peu de contre-coups pour le serveur. </p>
<p>Le problème ne vient alors pas vraiment d&#8217;un équilibre entre les performances clients et les performances serveurs, mais simplement de la capacité du serveur à enchaîner les requêtes. Il semblerait que certains serveurs supportent mal ou pas du tout cette possibilité, et entraînent des résultats incohérents : IIS par exemple.</p>
<p>C&#8217;est en tout cas pour cette raison que Firefox désactive le pipelining par défaut (<a href="http://www.mozilla.org/projects/netlib/http/pipelining-faq.html">mais documente la fonctionnalité</a>). Le fait est que Opera utilise le pipelining depuis longtemps, et que cela n&#8217;a pas l&#8217;air de déranger ses utilisateurs ou de &laquo;&nbsp;casser le web&nbsp;&raquo;. IIS peut être détecté assez facilement et le reste du Web n&#8217;a pas l&#8217;air de poser un problème tel à Opera que cela justifie la désactivation pour Firefox.</p>
<h3>Jouer avec firefox</h3>
<p>Si vous voulez jouer avec Firefox, vous pouvez tout de même activer le pipelining via <code><a href="http://kb.mozillazine.org/Network.http.pipelining">network.http.pipelining</a></code>, <code><a href="http://kb.mozillazine.org/Network.http.proxy.pipelining">network.http.proxy.pipelining</a></code>, et <code><a href="http://kb.mozillazine.org/Network.http.pipelining.maxrequests">network.http.pipelining.maxrequests</a></code>. Les deux premiers sont des booléens, pour activer le pipelining. Le second est un nombre maximum de requêtes à mettre dans la pile, 4 est un bon défaut (Firefox n&#8217;accepte pas une valeur plus grande que 8, et de toutes façons elle n&#8217;aurai aucune utilité). </p>
<p>Bien entendu, le pipelining n&#8217;est disponible que sur HTTP 1.1, et si les connexions persitantes sont activées (dans le navigateur comme sur le serveur).</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
