<?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; minimisation</title>
	<atom:link href="http://performance.survol.fr/avec/minimisation/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>Encore des outils</title>
		<link>http://performance.survol.fr/2009/03/encore-des-outils/</link>
		<comments>http://performance.survol.fr/2009/03/encore-des-outils/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 11:00:49 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[combo]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[concaténation]]></category>
		<category><![CDATA[minimisation]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smushit]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=421</guid>
		<description><![CDATA[Je vous avais parlé il y a quelques temps d&#8217;un plugin wordpress pour smushit et d&#8217;un script en php pour gérer cache, minimisation et concaténation des fichiers statiques. Voici d&#8217;autres briques du même type. Plus que les outils eux-même, qui &#8230; <a href="http://performance.survol.fr/2009/03/encore-des-outils/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je vous avais parlé il y a quelques temps d&#8217;<a href="http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/">un plugin wordpress pour smushit et d&#8217;un script en php pour gérer cache, minimisation et concaténation des fichiers statiques</a>. Voici d&#8217;autres briques du même type.</p>
<p>Plus que les outils eux-même, qui n&#8217;ont rien de révolutionnaires, c&#8217;est la prise de conscience des questions de performance par les développeur d&#8217;applicatifs et de bibliothèques de code qui me réjouit. Il est vrai qu&#8217;on ne peut pas demander à tous de se préoccuper des performances. Beaucoup d&#8217;éditeurs n&#8217;ont pas vraiment de techniciens compétents et se contentent d&#8217;utiliser des solutions toutes faites.</p>
<p>Le fait qu&#8217;il existe des plugins ou des composants utilisables peut faire la différence entre &laquo;&nbsp;il faudrait&nbsp;&raquo; et &laquo;&nbsp;j&#8217;installe et configure&nbsp;&raquo;.<span id="more-421"></span></p>
<p>C&#8217;est dans cet esprit que je vois arriver trois plugins pour le framework PHP Symfony :</p>
<ul>
<li><a href="http://www.symfony-project.org/plugins/sfOptimizeStyleAndScriptPlugin">sfOptimizeStyleAndScriptPlugin</a> : concaténation et compression</li>
<li><a href="http://www.symfony-project.org/plugins/sfMinifyPlugin">sfMinifyPlugin</a> : concaténation, minimification et cache</li>
<li><a href="http://www.symfony-project.org/plugins/sfCombinePlugin">sfCombinePlugin</a> : concaténation</li>
</ul>
<p>J&#8217;ai aussi vu passer <a href="http://code.google.com/p/minify/">Minify</a>, un script PHP qui fait concaténation, minimification et cache, et <a href="http://code.google.com/p/modconcat/">mod_concat</a> (<a href="http://modconcat.googlecode.com/svn/trunk/mod_concat/docs/mod_concat.pdf">doc</a>), qui s&#8217;occupe de la concaténation au niveau du serveur Web Apache.</p>
<p>Je ne suis pas fana des systèmes PHP qui fonctionne à l&#8217;exécution de l&#8217;applicatif. Les performances sont rarement au rendez-vous et il s&#8217;agit au minimum de faire traiter toutes les requêtes statiques par PHP, ce qui est franchement dommage. Je préfère sérieusement des outils qui s&#8217;intègrent à votre processus de publication : un bouton qui concatène et minimise une fois pour toutes les fichiers en les versionnant correctement et qui les pose au bon endroit sur un serveur avec de bonnes entêtes de cache.</p>
<p>Seul le système de concaténation mod_concat, qui ne prend virtuellement pas de ressources inutiles, remporte mon adhésion. On rejoint ce que fait d&#8217;ailleurs <a href="http://www.stevesouders.com/blog/2008/07/17/yuis-combo-handler-cdn-service/">Yahoo! avec son combo handler</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/03/encore-des-outils/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Plugin wordpress et outils automatiques</title>
		<link>http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/</link>
		<comments>http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 11:00:44 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[concaténation]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[minimisation]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[SmartOptimizer]]></category>
		<category><![CDATA[smushit]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-smushit]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=379</guid>
		<description><![CDATA[Parler de la performance web c&#8217;est d&#8217;abord convaincre que c&#8217;est important, puis rappeler qu&#8217;il y a quelques actions très simples à mettre en oeuvre qui ont un effet immédiat. En général je parle du cache sur les ressources statiques, et &#8230; <a href="http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Parler de la performance web c&#8217;est d&#8217;abord convaincre que <a href="http://performance.survol.fr/2008/06/a-quoi-ca-sert/">c&#8217;est important</a>, puis rappeler qu&#8217;il y a quelques actions très simples à mettre en oeuvre qui ont un effet immédiat. En général je parle du <a href="http://performance.survol.fr/2008/10/expires-et-cache-control-une-date-limite-de-consommation-pour-vos-contenus/">cache sur les ressources statiques</a>, et de la <a href="http://performance.survol.fr/2008/04/compression-avant-transfert/">compression des contenus</a>.<span id="more-379"></span></p>
<p>Reste que compresser les images correctement c&#8217;est long. <a href="http://performance.survol.fr/2008/10/verifiez-vos-images/">Smushit</a> accélère tout ça mais c&#8217;est du one shot. Ce qu&#8217;il faut c&#8217;est intégrer <a href="http://performance.survol.fr/2008/06/images-png-et-gif/">des outils comme optipng</a> dans votre processus de publication.</p>
<p>Alors voilà, pour un gros site au travail c&#8217;est réalisable avec un peu d&#8217;investissement. Sur un site de moindre importance c&#8217;est tout aussi important mais l&#8217;investissement devient lourd. C&#8217;est là que des outils automatiques sont intéressants, et le premier que je vous propose est un plugin wordpress, <a href="http://wordpress.org/extend/plugins/wp-smushit/">wp-smushit</a>, qui envoie automatiquement vos images à smushit. Plus besoin d&#8217;opérations manuelles, wordpress s&#8217;occupe de tout.</p>
<p>Le second que j&#8217;ai croisé est un script PHP qui prend la main sur tout téléchargement CSS ou Javascript : <a href="http://farhadi.ir/works/smartoptimizer">SmartOptimizer</a>. PHP permet de <a href="http://performance.survol.fr/2008/03/impact-de-la-latence-reseau/">concaténer</a>, <a href="http://performance.survol.fr/2008/04/minimiser-le-javascript/">minimiser</a>, <a href="http://performance.survol.fr/2008/06/attention-aux-compresseurs-javascript/">compresser</a>, et envoyer avec les entêtes de cache appropriées. Le résultat côté serveur est bon, mais je reste dubitatif sur l&#8217;idée de faire passer par PHP toutes les ressources statiques. Les ressources serveur vont souffrir de manière importante, et si vos serveurs deviennent lent votre performance client ne va finalement pas y gagner.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Analyse d&#8217;une requête HTTP &#8211; serveur et réseau</title>
		<link>http://performance.survol.fr/2008/07/analyse-requete-http-serveur-et-reseau/</link>
		<comments>http://performance.survol.fr/2008/07/analyse-requete-http-serveur-et-reseau/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 10:00:02 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[minimisation]]></category>
		<category><![CDATA[pipelining]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[schéma]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[tampon]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=55</guid>
		<description><![CDATA[On parle de temps, de performance, mais finalement que mesure t-on ? La question n&#8217;est pas inutile puisque pour une même requête il y a bien trois étape visibles du point de vue du visiteur, cinq du point de vue &#8230; <a href="http://performance.survol.fr/2008/07/analyse-requete-http-serveur-et-reseau/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On parle de temps, de performance, mais finalement que mesure t-on ? La question n&#8217;est pas inutile puisque pour une même requête il y a bien trois étape visibles du point de vue du visiteur, cinq du point de vue du navigateur et autant pour le serveur. Alors, que mesure t-on ?</p>
<p><span id="more-52"></span>Je vous propose un petit schéma incomplet des interactions lors de la requête d&#8217;une page HTML (attention, aucune échelle ou proportion n&#8217;est respectée).</p>
<p><a style="text-decoration: none;" href="http://performance.survol.fr/wp-content/uploads/2008/07/http-big.png"><img class="alignnone size-full wp-image-59" title="Analyse d\'une requête HTTP" src="http://performance.survol.fr/wp-content/uploads/2008/07/http-little.png" alt="" /></a></p>
<p>Alors, vous mesurez quoi ?</p>
<p><strong>La requête DNS</strong></p>
<p>Une fois que le visiteur clique sur un lien, c&#8217;est une requête DNS qui est lancée par le navigateur et environ 30ms qui sont perdues, parfois même jusqu&#8217;à 100 ou 150ms (triangle gris sur le schéma). Microsoft Internet Explorer 6 cache cette information pendant 30 minutes mais les autres navigateurs la relancent plus souvent. Mozilla Firefox ne garde le résultat de la requête DNS que pour une petite minute. Vous l&#8217;aurez donc quasiment à chaque nouvelle page. Vous pouvez réduire l&#8217;influence des requêtes DNS en limitant le nombre de domaines et sous-domaines utilisés par votre site. <strong>Gardez le nombre de domaines en dessous de quatre</strong>.</p>
<h3>La connexion au serveur</h3>
<p>L&#8217;étape suivante c&#8217;est l&#8217;établissement de la connexion avec le serveur que vous souhaitez joindre (triangle vers sur le schéma). C&#8217;est assez rapide mais ça reste quelque chose qui va impacter les performances. <strong>Autorisez le keep-alive pour les ressources statiques</strong> (images, feuilles de styles, javascript) : Le navigateur et le serveur vont réutiliser la connexion existante au lieu de rétablir une nouvelle connexion pour chaque composant. Le gain est notable, j&#8217;en avais <a href="http://performance.survol.fr/2008/04/keep-alive-et-connexions-persistantes/">déja parlé</a>.</p>
<p>Maintenant le keep-alive c&#8217;est aussi ce qui va garder la connexion ouverte inutilement une fois que vous aurez téléchargé tous les composants. C&#8217;est le rectangle vert en bas sur le schéma. C&#8217;est coûteux pour vs serveurs. Désactivez donc le keep-alive sur le serveur qui renvoie les pages HTML, et réduisez la valeur pour les autres : cinq secondes sont bien suffisantes.</p>
<h3>La requête HTTP elle-même, et l&#8217;attente qui suit</h3>
<p>Vient ensuite la requête HTTP elle-même (parallélogramme jaune sur le schéma). Vous voyez qu&#8217;elle prend un certain temps, symbolisée par une épaisseur sur le schéma. En cumulant toutes les entêtes et un cookie classique, votre requête peut facilement prendre 1ko. Pensez donc à <strong>réduire la taille du cookie</strong>, et même à <strong>ne pas avoir de cookie pour les ressources statiques</strong> en les mettant sur un domaine tiers.</p>
<p>Par la suite, pour réduire l&#8217;influence des requêtes HTTP, il ne reste plus qu&#8217;à en faire moins. En fait c&#8217;est assez simple. Il suffit d&#8217;<strong>aggréger plusieurs fichiers en un seul</strong>, qu&#8217;on parle de <a href="http://performance.survol.fr/2008/03/strategies-doptimisation-du-cache/">CSS et javascript</a>, ou de <a href="http://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/">sprites pour les images</a>. Vous épargnez le temps de faire la requête, mais aussi tout le temps d&#8217;attente du navigateur entre la fin de la requête et la réception de la réponse (espace blanc entre les parallélogrammes bleus et jaunes sur la ligne de temps du navigateur).</p>
<p>Une autre possibilité c&#8217;est d&#8217;envoyer plusieurs requêtes HTTP coup sur coup sans attendre les réponses. On utilise alors au mieux cet espace inutile entre la fin de la requête et le début de la réponse. On se permet même d&#8217;envoyer des donner dans un sens pendant qu&#8217;on en reçoit de l&#8217;autre côté, donc superposer des requêtes jaunes dans mon schéma avec des réponses bleues. C&#8217;est ce qui est réalisé avec le <a href="http://performance.survol.fr/2008/04/pipelining-enchainer-les-requetes-http/">pipelining HTTP</a>.</p>
<h3>Le calcul de la page par le serveur</h3>
<p>Voilà la mesure du diable. Dès qu&#8217;on parle de performance tout le monde va vite mesurer ce temps de génération des pages, en mauve sur le schéma. Même si l&#8217;échelle et les proportions ne sont pas respectées sur le schéma, il est évident que cette mesure n&#8217;est vraiment pas la a seule, ni même la plus importante. Pour des pages bien faites et des serveurs qui ne sont pas surchargées, il est très rare d&#8217;avoir des pages qui prennent plus de 100ms pour le calcul serveur. C&#8217;est généralement dix fois moins, alors que le chargement complet de la page pour le visiteur prend lui plusieurs secondes.</p>
<p>Mais surtout, c&#8217;est létape qui est souvent la première à être optimisée, et celle où il est assez complexe de gagner encore des performances si on a déjà penser au cache. <strong>Ne vous focalisez pas sur le temps de génération des pages</strong>, sauf s&#8217;il est flagrant qu&#8217;il est disproportionné par rapport aux besoins.</p>
<p>Éventuellement, si votre page peut mettre longtemps à se générer et que c&#8217;est facile à faire, vous pouvez <strong>forcer un vidage du tampon au milieu de la génération de la page</strong>, pour que l&#8217;utilisateur commence à voir le contenu réel de la page et télécharge les composants tiers pendant que le calcul de la page continue à se faire. L&#8217;équipe <a href="http://developer.yahoo.com/performance/rules.html#flush">Performance de Yahoo! en parle</a>, l&#8217;équipe Search aurait eu de bons résultats avec cette technique.</p>
<h3>Le téléchargement de la page</h3>
<p>La dernière étape du point de vue du serveur c&#8217;est le téléchargement de la page elle-même. C&#8217;est un des postes qui impactent le plus les performances. On a beau faire des publicités pour des liaisons à 24mb/s, si vous téléchargez une pages HTML à 2mb/s c&#8217;est bien. Et derrière si on compte les images, les cookies, les javascript, les feuilles de style, le flash, les vidéo, et la page HTML elle-même, ça prend du temps, incompressible.</p>
<p>Enfin certaines choses sont incompressibles, d&#8217;autres justement&#8230; vous pouver <a href="http://performance.survol.fr/2008/04/minimiser-le-javascript/">minimiser les javascript et CSS</a>, mais aussi <a href="http://performance.survol.fr/2008/04/compression-avant-transfert/">utiliser la compression HTTP</a> pour tout ce qui est fichier texte (HTML, javascript, CSS, XML, Json, etc.). Les résultats sont spectaculaires et il est facile de diviser le poids par dix, donc le temps de téléchargement d&#8217;autant.</p>
<p>On peut aussi faire bien mieux, et réduire tout le téléchargement de la page à quelques octets. Il s&#8217;agit simplement de repérer quand le navigateur a déjà une page similaire en cache, et de lui répondre un code HTTP 304 &laquo;&nbsp;la page n&#8217;a pas changée&nbsp;&raquo;. Ca fonctionne à base d&#8217;<a href="http://performance.survol.fr/2008/06/desactiver-les-etags/">ETag</a>, de date de modification et de requête conditionnelle HTTP. </p>
<h3>Et entre le visiteur et son navigateur ?</h3>
<p>Je n&#8217;ai parlé que de la partie basse du schéma, en oubliant tout ce qu&#8217;il se passe entre le navigateur et l&#8217;humain derrière son écran. Ca a l&#8217;air plus simple parce qu&#8217;il y a moins de composants en jeu, mais c&#8217;est là que se passe une bonne partie des problèmes de performance, et pas forcément les plus simples à gérer.</p>
<p>On en parlera dans un prochain billet, vous voulez bien ?</p>
<p>En attendant retenez : </p>
<ul>
<li>Le début du rendu du navigateur ne correspond pas avec le début de la réception de la page HTML.</li>
<li>La fin l&#8217;interprétation du HTML ne correspond pas du tout avec la fin de la réception de la page HTML.</li>
<li>La fin du rendu total de la page peut intervenir plusieurs secondes après la fin de la réception de la page HTML.</li>
</ul>
<p>Mais de toutes façons le jeu c&#8217;est le plus possible d&#8217;éviter tout le schéma en lui même : réduire le nombre de requêtes HTTP, soit par une réduction du nombre de composants, soit par une exploitation au mieux du cache.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/07/analyse-requete-http-serveur-et-reseau/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Attention aux compresseurs javascript</title>
		<link>http://performance.survol.fr/2008/06/attention-aux-compresseurs-javascript/</link>
		<comments>http://performance.survol.fr/2008/06/attention-aux-compresseurs-javascript/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 10:32:55 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[deflate]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[minimisation]]></category>
		<category><![CDATA[packer]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=46</guid>
		<description><![CDATA[En avril je vous parlais du packer de Dean Edwards qui permet de miniser le code javascript avant envoi. J&#8217;émettais un doute sur l&#8217;option base62. Avec cette option le code javascript est codé avant envoi. Une fois ce javascript reçu, &#8230; <a href="http://performance.survol.fr/2008/06/attention-aux-compresseurs-javascript/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://performance.survol.fr/2008/04/minimiser-le-javascript/">En avril</a> je vous parlais du <a href="http://dean.edwards.name/packer/">packer de Dean Edwards</a> qui permet de miniser le code javascript avant envoi. J&#8217;émettais un doute sur l&#8217;option base62. Avec cette option le code javascript est codé avant envoi. Une fois ce javascript reçu, le navigateur va le décoder, puis utiliser <code>eval()</code> pour l&#8217;exécuter. C&#8217;est tout sauf transparent pour le client, surtout que pendant ce temps de traitement supplémentaire, c&#8217;est tout le rendu et les téléchargements de la page qui sont bloqués.<span id="more-41"></span></p>
<h3>L&#8217;expérience</h3>
<p>Batiste Bieler a visiblement eu le même doute l&#8217;année dernière que moi et <a href="http://batiste.dosimple.ch/blog/2007-07-02-1/ ">publie des tests</a> réalisés sur Jquery. Après passage par mod_deflate le packer permet tout de même d&#8217;économiser presque 45% des 20ko de javascript. Ce n&#8217;est pas négligeable et on a naturellement tendance à foncer tête baissée. Le hic c&#8217;est que sur sa configuration ça multiplie par deux le temps total de gestion (téléchargement plus exécution) pour javascript. <a href="http://www.julienlecomte.net/blog/2007/08/13/">Julien Lecomte relève</a> lui près de 200ms de délai à cause du travail supplémentaire côté client. </p>
<p>Bref, tout ça n&#8217;est pas négligeable. Ce sera toujours un compromis entre le gain en bande passante et la perte en temps processeur, donc une machine très puissante avec une très mauvaise connectivité réseau aura potentiellement intérêt à utiliser le packer, mais Batiste a tout de même utilisé un code duo à 1.66Ghz par coeur et je doute que le portable ayant servi à Julien Lecomte soit obsolète au niveau des performances. Bref, sauf dans des conditions spécifiques, <strong>n&#8217;utilisez pas le packer/base62 pour des fichiers javascript compressés par mod_deflate ou mod_gzip</strong>.                         </p>
<p><a href="http://ejohn.org/blog/library-loading-speed/">John Resig en parlait</a> aussi en février avec un mot d&#8217;ordre explicite :</p>
<blockquote><p>La prochaine que vous choisisser une méthode de compression, rappelez-vous de cette formule : Performance_Total = Temps_de_Téléchargement + Temps_d_Exécution </p></blockquote>
<h3>L&#8217;influence de gzip</h3>
<p>En fait quand on regarde actuellement <a href="http://jquery.com/">le site de Jquery</a> c&#8217;est un peu plus clair. On vous propose une version décompressée pour les tests, une version minifiée et gzipée pour la production, et une version qui utilise le packer de Dean Edwards &laquo;&nbsp;pour ceux qui ne peuvent pas gziper leur javascript&nbsp;&raquo;. Au moins c&#8217;est clair.</p>
<p>Si on garde en tête les chiffres de Batiste on confirme cette idée : sans gzip 60ko de javascript sont transformés en 20ko compressés. Les différences sont alors plus importantes, l&#8217;impact sur le réseau est plus fort et le packer reprend de son intérêt. La question sera alors de savoir si vos visiteurs ont des machines puissantes ou pas. On choisira le packer de Dean dans le premier cas, et un procédé de minification plus classique dans le second cas. C&#8217;est d&#8217;ailleurs <a href="http://dean.edwards.name/weblog/2007/08/js-compression/">la recommandation de Dean Edwards</a> lui-même : il ne destine pas son outil à tous les usages.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2008/06/attention-aux-compresseurs-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
