<?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; image</title>
	<atom:link href="http://performance.survol.fr/avec/image/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>Pngrewrite sous linux</title>
		<link>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/</link>
		<comments>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 10:00:25 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngout]]></category>
		<category><![CDATA[pngrewrite]]></category>
		<category><![CDATA[punypng]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=749</guid>
		<description><![CDATA[Je fais encore le tour des outils de compression d&#8217;image pour faire la comparaison et trouver le bon compromis entre ressources consommées et efficacité. Un de mes problème c&#8217;est punypng qui annonce des performances exceptionnelles mais qui ne détaille pas &#8230; <a href="http://performance.survol.fr/2009/09/pngrewrite-sous-linux/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je fais encore le tour des outils de compression d&#8217;image pour faire la comparaison et trouver le bon compromis entre ressources consommées et efficacité. Un de mes problème c&#8217;est <a href="http://www.gracepointafterfive.com/punypng">punypng</a> qui annonce des performances exceptionnelles mais qui ne détaille pas son fonctionnement et ne propose même pas d&#8217;API. Je vérifierai leurs affirmations et tenterai de m&#8217;en approcher mais en attendant je fouille.</p>
<p>Un des outils que je regarde c&#8217;est <a href="http://entropymine.com/jason/pngrewrite/">pngrewrite</a>. La rumeur voudrait qu&#8217;il ne gagne pas grand chose mais qu&#8217;il est capable de le faire même après un passage par optipng ou pngcrush. Bref, un petit ajout rapide, juste pour grappiller un peu plus.</p>
<p>Je vais vérifier tout ça là aussi, mais en attendant le code proposé sur le site officiel ne compile pas sur mon linux récent. Pour ceux qui ont le même problème, la distribution gentoo a <a href="http://riksun.riken.go.jp/pub/pub/Linux/gentoo/media-gfx/pngrewrite/files/pngrewrite-1.3.0-gcc44.patch">un patch</a> disponible. Il suffit de le télécharger là où vous aurez décompacté le code source de pngrewrite et de lancer <kbd>patch -p0 &lt; pngrewrite-1.3.0-gcc44.patch</kbd> puis de taper l&#8217;habituel <kbd>make</kbd>.</p>
<p>Voilà, maintenant vous savez.</p>
<p>J&#8217;aurai bien fait des paquets Ubuntu pour pngrewrite et pngout mais je ne trouve pas la licence du premier et le second interdit explicitement de reditribuer l&#8217;exécutable résultat. Si j&#8217;ai le courage je tenterai peut être des paquets &laquo;&nbsp;tricheur&nbsp;&raquo; qui téléchargent sur Internet lors de leur installation mais ça perd un des intérêts.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/09/pngrewrite-sous-linux/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Punypng, un smushit-like</title>
		<link>http://performance.survol.fr/2009/08/punypng-smushit-like/</link>
		<comments>http://performance.survol.fr/2009/08/punypng-smushit-like/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 10:00:16 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[punypng]]></category>
		<category><![CDATA[smushit]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=691</guid>
		<description><![CDATA[Smushit a disparu, ou presque. On nous parlait d&#8217;ouvrir le code source. Il y avait une API pour faire des tests automatisés. Il était possible d&#8217;optimiser tout un site web. Le site a été repris sur un hébergement interne à &#8230; <a href="http://performance.survol.fr/2009/08/punypng-smushit-like/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yslow/smushit/">Smushit</a> a disparu, ou presque. On nous parlait d&#8217;ouvrir le code source. Il y avait une API pour faire des tests automatisés. Il était possible d&#8217;optimiser tout un site web. Le site a été repris sur un hébergement interne à Yahoo! et depuis il y a eu des indisponibilités et plus de régressions que d&#8217;améliorations. Le concept est toujours très intéressant mais finalement très limité.</p>
<p>J&#8217;ai annoncé il y a quelques temps que je comptais développer un outil similaire avec un code source ouvert et au moins une version en ligne de commande pour être intégré dans des mécanismes automatisés de publication (plutôt que d&#8217;attendre publication pour ensuite corriger image par image). Ca viendra, mais ça prend du temps parce que je veux faire les choses bien. Je compare donc tous les outils que j&#8217;ai pu voir pour comparer leurs résultats, avec différentes options. Il faut tenter de prendre un échantillon d&#8217;images représentatif, repérer les avantages et les défauts de chaque outil suivant le format mais aussi le type d&#8217;image (taille, transparence, nombre de couleurs, etc.) puis faire un choix en fonction du temps de traitement (prendre le plus efficace sur la taille finale n&#8217;est pas forcément la meilleure idée). Bref, ça viendra mais ce n&#8217;est pas pour demain.</p>
<p>Par contre vous avez désormais <a href="http://www.gracepointafterfive.com/punypng">punypng</a>. Je n&#8217;ai pas vu de code source, il n&#8217;y a pas de version en ligne de commande, ça n&#8217;accepte pas une URL de page HTML pour en extraire toutes les images (quoi qu&#8217;il doit être assez simple d&#8217;adapter l&#8217;ancienne extension smushit pour cela) mais ils innovent. Ils ont repris l&#8217;idée d&#8217;optimiser les images contenant des pixels avec une information RGB mais totalement transparents, ils font plus de travail sur les jpeg, et ils tentent d&#8217;avoir une interface plus efficace que smushit. C&#8217;est déjà ça et c&#8217;est bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/08/punypng-smushit-like/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Optimiser vos images avec Photoshop</title>
		<link>http://performance.survol.fr/2009/07/optimiser-vos-images-avec-photoshop/</link>
		<comments>http://performance.survol.fr/2009/07/optimiser-vos-images-avec-photoshop/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 10:00:42 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[transparence]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=686</guid>
		<description><![CDATA[Nous avons parlé plus d&#8217;une fois d&#8217;optimisation d&#8217;images. Dans des billets sur les outils comme pngcrush les commentaires ont parfois dérivé (avec plaisir) sur les techniques d&#8217;optimisations et l&#8217;importance de gérer la qualité et la compression de l&#8217;image dès la &#8230; <a href="http://performance.survol.fr/2009/07/optimiser-vos-images-avec-photoshop/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nous avons parlé plus d&#8217;une fois d&#8217;optimisation d&#8217;images. Dans des billets sur les outils comme pngcrush les commentaires ont parfois dérivé (avec plaisir) sur les techniques d&#8217;optimisations et l&#8217;importance de gérer la qualité et la compression de l&#8217;image dès la création.</p>
<p>Souvent ce n&#8217;est plus possible pour ceux qui s&#8217;occupent des performances mais si vous avez la chance d&#8217;avoir la main sur celui qui joue avec Photoshop et qu&#8217;il semble assez receptif à vos demandes, lisez vite l&#8217;article de Smashing magazine sur l&#8217;<a href="http://www.smashingmagazine.com/2009/07/15/clever-png-optimization-techniques/">optimisation PNG</a>, puis celui sur l&#8217;<a href="http://www.smashingmagazine.com/2009/07/01/clever-jpeg-optimization-techniques/">optimisation JPEG</a>.<br />
<span id="more-686"></span><br />
Vous y trouverez comment améliorer certaines zones, comment diminuer le nombre de couleurs tout en gardant une qualité très intéressante, comment supprimer les informations sur les pixels transparents peut améliorer la compression, ou pourquoi un jpeg à qualité 51% est infiniment mieux qu&#8217;un jpeg à qualité 49%.</p>
<p>Votre graphiste connait déjà tout ça, mais un rappel tel que celui ci permet de faire en sorte qu&#8217;il utilise. Vous vous aurez en tout cas dans les mains les armes pour le challenger sur le poids des images. Il vous restera juste à passer le résultat par OptiPNG si c&#8217;est encore nécessaire.  </p>
<p>J&#8217;aime d&#8217;ailleurs beaucoup l&#8217;idée de supprimer les informations inutiles dans les pixels transparents pour améliorer la compression. Je suis étonné que ce ne soit pas fait par défaut lors de l&#8217;export &laquo;&nbsp;pour le web&nbsp;&raquo; de Photoshop. Je ne crois pas que OptiPNG ou PngCrush s&#8217;en occupent non plus, et c&#8217;est malheureux. Je vous propose donc de récupérer <a href="http://www.gracepointafterfive.com/dirty-transparency">un filtre Photoshop</a> pour faire ça automatiquement, ou plutôt le faire faire par votre graphiste.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/07/optimiser-vos-images-avec-photoshop/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Astuce EzPublish pour optimiser les images</title>
		<link>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/</link>
		<comments>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 10:00:53 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[ezPublish]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=668</guid>
		<description><![CDATA[Je vous avais parlé de plugins pour wordpress et symfony en janvier, puis de nouveau en mars. Ces plugins ne sont généralement pas parfaits. Ils ajoutent un filtre PHP au téléchargement des ressources statiques, ou utilisent des conversions avec perte &#8230; <a href="http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je vous avais parlé de <a href="http://performance.survol.fr/2009/01/plugin-wordpress-et-outils-automatiques/">plugins pour wordpress et symfony en janvier</a>, puis <a href="http://performance.survol.fr/2009/03/encore-des-outils/">de nouveau en mars</a>. Ces plugins ne sont généralement pas parfaits. Ils ajoutent un filtre PHP au téléchargement des ressources statiques, ou utilisent des conversions avec perte sur les images (si je soutiens l&#8217;idée de dégrader un peu les images, le faire automatiquement sans contrôle humain derrière est assez risqué).</p>
<p>Par contre j&#8217;apprécie beaucoup l&#8217;arrivée de ces plugins pour deux raisons. D&#8217;abord ils montrent une prise de conscience globale de la problématique des performance, et surtout ils posent les premières briques d&#8217;une démarche performance intégrée aux outils de publication. Si pour l&#8217;instant rien ne remplace l&#8217;expert et le consultant sur ces sujets, rien ne me ferait plus plaisir que de savoir qu&#8217;on puisse s&#8217;en passer à l&#8217;avenir. Il est finalement anormal que quelqu&#8217;un qui met juste en place un blog ou un CMS ne puisse pas avoir quelque chose de performant <em>par défaut</em>.<span id="more-668"></span></p>
<p>C&#8217;est dans cet esprit que je peux vous parler d&#8217;<a href="http://pwet.fr/blog/optimisation_des_images_generees_par_ez_publish">une petite idée de configuration, cette fois pour le CMS ezPublish</a>. Là aussi ce n&#8217;est pas parfait, il s&#8217;agit juste d&#8217;un filtre pour envoyer les images à travers imagemagick avec des paramètres pour retirer les métadonnées, ça ne concerne que les miniatures, mais ça existe et on en parle. En soi c&#8217;est déjà une réussite.</p>
<p>Si votre outil a lui aussi cette notion de filtre, que ce soit pour les images générées comme les miniatures ou pour les images téléchargées dans l&#8217;outil,  je ne peux que vous encourager à mettre en place ce genre de solutions. J&#8217;aurai tout de même une préférence pour <a href="http://performance.survol.fr/2009/06/pngcrush-ou-optipng/">OptiPNG</a> plutôt que ImageMagick.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/07/astuce-ezpublish-pour-optimiser-les-images/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Point trop n&#8217;en faut</title>
		<link>http://performance.survol.fr/2009/06/point-trop-nen-faut/</link>
		<comments>http://performance.survol.fr/2009/06/point-trop-nen-faut/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:00:07 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[SriteMe]]></category>
		<category><![CDATA[Steve Souders]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[Vladimir Vukićević]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=603</guid>
		<description><![CDATA[En ce moment se tiennent les conférences Velocity en Californie. C&#8217;est une période où les experts parlent entre eux et où les bonnes remarques et bons sujets à propos des performances web sont publiés plusieurs fois par jour. Suite à &#8230; <a href="http://performance.survol.fr/2009/06/point-trop-nen-faut/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En ce moment se tiennent <a href="http://en.oreilly.com/velocity2009">les conférences Velocity</a> en Californie. C&#8217;est une période où les experts parlent entre eux et où les bonnes remarques et bons sujets à propos des performances web sont publiés plusieurs fois par jour.</p>
<p>Suite à plusieurs de ces publications à propos des <a href="http://performance.survol.fr/2008/06/des-sprites-jusqua-plus-soif/">sprites CSS</a>, il est temps de faire ici un petit complément sur le sujet.<span id="more-603"></span></p>
<h3>Sprite Me</h3>
<p>Le premier lien c&#8217;est <a href="http://www.stevesouders.com/spriteme/">SpriteMe</a>, un bookmarklet qui permet de repérer les images les plus pertinentes à grouper ensemble dans un sprite. L&#8217;outil regarde toutes les images de background dans la CSS, les groupe par alignement et taille. Plus tard il est prévu qu&#8217;il <a href="http://spritegen.website-performance.org/">génère</a> le sprite associé puis mette à jour la CSS.</p>
<p>Je reste assez septique sur ces deux dernières étapes. C&#8217;est réalisable, sans aucun doute, mais pas forcément pertinent. On risque d&#8217;associer des images qui ne sont qu&#8217;occasionnellement dans le même contexte, ou des couleurs trop différentes, des alignements difficiles à faire parce que telle ou telle image a besoin d&#8217;une grande marge, etc.</p>
<p>La décision et la réalisation doivent probablement rester des étapes manuelles, mais l&#8217;aide à la décision ne peut être qu&#8217;une bonne chose.</p>
<h3>Trop c&#8217;est trop</h3>
<p>Le second lien c&#8217;est Vladimir Vukićević de Mozilla qui rappelle <a href="http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite/">les problèmes inhérents à une mauvaise réalisation des sprites</a>.</p>
<p>Sur le réseau on fait transiter des images compressées, aussi seul le poids du fichier et le nombre de requêtes HTTP comptent. Les sprites sont une grande avancée. Toutefois, le navigateur utilise lui l&#8217;image décompressée en mémoire. Sur des tailles démeusurées, la mémoire se retrouve encombrée par un simple sprite. Sur un exemple réel, Vladimir parle d&#8217;un sprite de 75Mo en mémoire (1299&#215;15000 pixels).</p>
<p>Donc voilà, un rappel n&#8217;est jamais mauvais et j&#8217;avais déjà abordé ici la problématique à propos des terminaux mobiles, le sprite est globalement une bonne chose mais il vaut mieux rester mesuré : gardez la taille réelle de l&#8217;image en tête.</p>
<p>Le plus simple pour éviter les excès c&#8217;est de grouper ensemble des images de taille similaire et d&#8217;alignement identique. Pas d&#8217;icône 16&#215;16 liée à des bandeaux 2000&#215;24 pour éviter de perdre 1984px de largeur. De toutes façons, rappelez-vous qu&#8217;au delà de 2000 pixels, un bug du navigateur Opera risque de vous mettre des bâtons dans les roues.</p>
<h3>Ne pas jeter le bébé avec l&#8217;eau du bain</h3>
<p>La solution c&#8217;est le pipelining HTTP, qui ne semble jamais venir. Le commentaire de Rob Sayre de Mozilla à ce sujet (« en théorie, ahahaha ») veut tout dire. Les autres possibilités ce sont les conteneurs jar de mozilla, ou les réponses mime/multipart, de Mozilla aussi.</p>
<p>Mais voilà, pour l&#8217;instant c&#8217;est la seule technique viable que nous ayons, et elle fonctionne. En restant correct sur les tailles, le gain côté réseau dépasse largement le petit effet négatif sur la mémoire. N&#8217;oubliez pas, même sur les terminaux mobiles, c&#8217;est le réseau qui reste le plus gros goulet d&#8217;étranglement.</p>
<p>Bref, faites juste attention aux tailles des images décompressées.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/point-trop-nen-faut/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Optimisation JPEG (encore)</title>
		<link>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/</link>
		<comments>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 10:00:48 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[JHead]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[Jpegoptim]]></category>
		<category><![CDATA[jpegtrans]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=588</guid>
		<description><![CDATA[je vous ai parlé plus d&#8217;une fois de recompression des images PNG. Mais &#8230; et les jpeg ? Les jpeg ont aussi des métadonnées importantes et des informations inutiles dans un contexte web. Vous y trouverez plusieurs version de l&#8217;image &#8230; <a href="http://performance.survol.fr/2009/06/optimisation-jpeg-encore/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>je vous ai parlé plus d&#8217;une fois de <a href="http://performance.survol.fr/avec/png/">recompression des images PNG</a>. Mais &#8230; et les jpeg ?</p>
<p>Les jpeg ont aussi des métadonnées importantes et des informations inutiles dans un contexte web. Vous y trouverez plusieurs version de l&#8217;image à différentes résolutions pour gérer des miniatures, ou même des pistes audio. Stoyan Stefanov a trouvé un gain moyen de 12 % avec des transformations sans pertes sur l&#8217;image elle-même, loin d&#8217;être négligeable.</p>
<p>C&#8217;est <a href="http://sylvana.net/jpegcrop/jpegtran/">Jpegtran</a> dont <a href="http://performance.survol.fr/2008/07/optimisation-jpeg/">j&#8217;avais parlé la dernière foi</a>s, l&#8217;outil utilisé par smushit. En plus de retirer les blocs de méta données (moins précisément que JHead), il permet de retoucher un peu la compression sans toucher à la qualité de l&#8217;image ni subir de pertes par rapport à l&#8217;image originale.</p>
<p>Jpegtran permet aussi de créer<a href="http://yuiblog.com/blog/2008/12/05/imageopt-4"> des images jpeg progressives</a>, ce qui parfois est légèrement plus petit en taille (mais pas tout le temps, et en particulier pas pour les petites images).</p>
<p>Attention toutefois, cela retirera aussi les mentions de copyright éventuelles. Ne le faites que sur vos images ou prévoyez d&#8217;extraire d&#8217;abord cette information pour la réinjecter dans l&#8217;image finale ensuite.</p>
<p><a href="http://www.sentex.net/~mwandel/jhead/">JHead</a> manipule lui aussi les entêtes et les métadonnées EXIF, IPTC et XMP. Je peux vous proposer les options <code>-du -dc -de -di -dx</code>. <a href="http://freshmeat.net/projects/jpegoptim">Jpegoptim</a> propose aussi une optimisation sans perte et la possibilité de supprimer les entêtes EXIF et commentaires. Je n&#8217;ai pas de retour sur la performance de l&#8217;outil. Pour ceux que ça intéresse il y a une option pour diminuer la qualité de l&#8217;image (non activée par défaut).</p>
<p>Maintenant, comme on me le faisait remarquer il y a peu à propos des PNG, la meilleure compression s&#8217;obtient toujours en travaillant l&#8217;image avant de la fixer dans un format particulier. En particulier il est généralement appréciable de gérer <a href="http://www.htmlzengarden.com/2009/06/jpeg_et_compression_par_zones/">la qualité par zones</a>, pour avoir les détails là où c&#8217;est utile.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/optimisation-jpeg-encore/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pngcrush ou Optipng ?</title>
		<link>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/</link>
		<comments>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 10:00:56 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[optipng]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngcrush]]></category>
		<category><![CDATA[statistiques]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=551</guid>
		<description><![CDATA[Je reprend mon test précédent, plus de 7000 images PNG de taille diverses, beaucoup de 1 à 5 ko, d&#8217;autres jusqu&#8217;à 250 ko pour un total de 450 Mo. Faut-il utiliser pngcrush ou optipng pour recompresser ses images png ? &#8230; <a href="http://performance.survol.fr/2009/06/pngcrush-ou-optipng/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je reprend mon test précédent, plus de 7000 images PNG de taille diverses, beaucoup de 1 à 5 ko, d&#8217;autres jusqu&#8217;à 250 ko pour un total de 450 Mo. Faut-il utiliser pngcrush ou optipng pour recompresser ses images png ?</p>
<p>PNGcrush me donnait 403 Mo (10% de gain) pour 75 minutes avec les options par défaut, et 399 Mo (11% de gain) en le poussant à fond mais en prenant alors entre 8 et 9 heures.</p>
<p>Optipng, avec les options par défaut, arrive à 392 Mo (13% de gain, donc mieux que le maximum de pngcrush) pour deux heures et demie. C&#8217;est long, mais on gagne deux points. À noter tout de même que 10% des fichiers sont légèrement plus gros avec optipng qu&#8217;avec pngcrush, mais en moyenne quand optipng est plus gros c&#8217;est de moins de 1%, alors que quand il est plus petit c&#8217;est plus significatif (et il plus petit dans 90% des cas).</p>
<p>Si il est franchement inacceptable d&#8217;imaginer mettre huit heures pour quelques points, le compromis résultat/temps d&#8217;optipng peut avoir du sens. Si vous n&#8217;êtes pas trop pressés, c&#8217;est l&#8217;outil qu&#8217;il vous faut.</p>
<p>Malgré le mauvais retour des options &laquo;&nbsp;brutes&nbsp;&raquo; avec pngcrush, j&#8217;ai tenté la même chose avec optipng (option -o7). On gagne au plus 2 Mo sur l&#8217;échantillon global, et le temps de calcul dépasse la journée. Autant dire que là aussi, sauf si vous avez une bonne raison, restez avec les options par défaut.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/pngcrush-ou-optipng/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Résultats de PNGcrush</title>
		<link>http://performance.survol.fr/2009/06/resultats-de-pngcrush/</link>
		<comments>http://performance.survol.fr/2009/06/resultats-de-pngcrush/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 10:00:20 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[pngcrush]]></category>
		<category><![CDATA[smushit]]></category>
		<category><![CDATA[statistique]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=526</guid>
		<description><![CDATA[Je fais depuis quelques jours des tests avec différents outils d&#8217;optimisation pour images PNG en vue de réimplémenter un smushit-like libre en ligne de commande. Je vous avais déjà parlé de pngcrush, mais sans plus de détails. Ce billet est &#8230; <a href="http://performance.survol.fr/2009/06/resultats-de-pngcrush/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je fais depuis quelques jours des tests avec différents outils d&#8217;optimisation pour images PNG en vue de réimplémenter un <a href="http://performance.survol.fr/2008/10/verifiez-vos-images/">smushit</a>-like libre en ligne de commande. Je vous avais déjà parlé de pngcrush, mais sans plus de détails. Ce billet est là pour répondre à la question &laquo;&nbsp;<em>dois-je utiliser les options pour pousser l&#8217;outil à bout ou dois-je utiliser les options par défaut ?</em>&laquo;&nbsp;.<span id="more-526"></span></p>
<p>Pour y répondre j&#8217;utilise un répertoire de 7000 fichiers de 250 ko maximum avec une moyenne à 60 ko. En réalité il y a pour plus de moitié de fichiers inférieurs à 10 ko (pour ceux que ça intéresse, l&#8217;écart type est de 50 ko). Je n&#8217;ai aucune prétention sur la représentativité de ces images téléchargées de façon automatisée sur le web, mais cela donne au moins un ordre d&#8217;idée.</p>
<p>Sur des fichiers sortis sous Photoshop, de mon expérience et au jugé j&#8217;aurai tendance à dire qu&#8217;un passage par les outils type pngcrush font gagner entre 10 et 30 % sur le poids des images. Sachant que les images représentent généralement plus d&#8217;un tiers du poids global des pages, c&#8217;est non négligeable.</p>
<p>Donc ces 7000 et quelques fichiers prennent 450 Mo sur disque. Passés par pngcrush on arrive à 403 Mo. Un passage par l&#8217;outil nous fait gagner 10 % en moyenne. C&#8217;est moins que ce que je pensais (mais mon échantillon n&#8217;est pas forcément représentatif) mais notable tout de même.</p>
<p>J&#8217;ai tenté plusieurs solutions dans les options, en finissant avec un outrageux &laquo;&nbsp;-l 9 -brute -cc -rem alla -reduce -rem time -rem iTXt -rem tEXt -rem zTXt&nbsp;&raquo; qui n&#8217;est pertinent pour rien d&#8217;autre que pour ce test. Je suis tombé à un poids global de 399 Mo. On gagne 1,5 points par rapport aux options par défaut, à peine 1 % à partir du test précédent. Par contre pour gagner ce 1 %, pngcrush a pris 7 fois plus de temps (520 minutes au lieu de 70). Autant dire que votre processeur pourrait trouver de meilleures occupations.</p>
<p>Résultat : <strong>pngcrush, oui, mais gardez les options par défaut.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/06/resultats-de-pngcrush/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Préchargement des images CSS avec Jquery</title>
		<link>http://performance.survol.fr/2009/04/prechargement-des-images-css-avec-jquery/</link>
		<comments>http://performance.survol.fr/2009/04/prechargement-des-images-css-avec-jquery/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 11:00:44 +0000</pubDate>
		<dc:creator>Éric</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[préchargement]]></category>
		<category><![CDATA[prefetch]]></category>
		<category><![CDATA[réseau]]></category>

		<guid isPermaLink="false">http://performance.survol.fr/?p=477</guid>
		<description><![CDATA[Dans le préchargement l&#8217;idée est de faire travailler le navigateur avant que l&#8217;utilisateur ne demande les documents pour que ce soit quasiment instantané ensuite. On attend la fin de chargement de la page, et on lance par avance le téléchargement &#8230; <a href="http://performance.survol.fr/2009/04/prechargement-des-images-css-avec-jquery/">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dans le préchargement l&#8217;idée est de faire travailler le navigateur avant que l&#8217;utilisateur ne demande les documents pour que ce soit quasiment instantané ensuite. On attend la fin de chargement de la page, et on lance par avance le téléchargement de plusieurs liens dont on pense qu&#8217;ils serviront plus tard. C&#8217;est très intéressant pour quelques logos, css ou javascript. Imaginez une page d&#8217;accueil avec un style bien différent du reste du site : il peut être avantageux de précharger la feuille de style ou le javascript qui seront utilisés sur les autres pages.</p>
<p>C&#8217;est Marc Hertzog qui se colle à <a href="http://marcarea.com/weblog/?post/2008/07/12/Plug-in-jQuery-pour-pre-charger-les-images-CSS">l&#8217;exercice</a> avec JQuery. Il a amélioré <a href="http://www.filamentgroup.com/lab/update_automatically_preload_images_from_css_with_jquery/">un module de Scott Jehl</a> qui lit une feuille de style et tente de précharger toutes les images qui y sont référencées. L&#8217;idée est séduisante. On supprime alors les temps d&#8217;attente pour les images qui s&#8217;affichent au survol de la souris ou sur les pages suivantes.</p>
<p>L&#8217;idée est séduisante mais je n&#8217;accroche pas tout à fait.<span id="more-477"></span> Tout d&#8217;abord parce que c&#8217;est au navigateur de faire ça. J&#8217;ai souvent dit que sur les performances on compensait les manques des navigateurs et qu&#8217;il fallait être pragmatiques (le faire quand même même si dans l&#8217;idéal c&#8217;est le boulot du navigateur) mais là il s&#8217;agit de quelque chose de simple, très simple. Quand un &laquo;&nbsp;quick win&nbsp;&raquo; n&#8217;est pas réalisé par des gens intelligents &#8211; et les développeurs de navigateur le sont &#8211; c&#8217;est qu&#8217;il y a anguille sous roche.</p>
<p>Le plus gros défaut que je vois est celui inhérent à tout préchargement : on fait travailler le navigateur. Sur un poste personnel avec une navigation très linéaire ça n&#8217;a d&#8217;effet négatif quasi que sur les prestataires réseau. Mais sur une ligne partagée (entreprise, wifi), avec des gens très connectés (vidéo en streaming parallèle, deezer ou spotify en tâche de fond), ou simplement sur une navigation avec beaucoup d&#8217;onglets (vous faites une recherche, vous ouvrez beaucoup de pages en parallèle), vous pénalisez l&#8217;utilisateur ou ses voisins. Même chose pour un utilisateur en itinérance : utiliser son réseau et son processeur pour ça aura une influence forte sur sa batterie.</p>
<p>Le préchargement reste une bonne idée, mais à petite dose, pour des choses ciblées, prévues. Ici on télécharge tout sans discernement. C&#8217;est certain, on va aussi télécharger des éléments qui ont une faible probabilité d&#8217;être utile. Dans les commentaires de la version originale du script on propose de faire un tri sur l&#8217;url de chaque image, suivant son répertoire on décide si c&#8217;est une image qui doit être préchargée ou pas. On résout ainsi l&#8217;occupation réseau (mais pas l&#8217;occupation processeur), mais ça commence à faire usine à gaz. Sans compter que une même image peut avoir du sens pour un préchargement sur certaines pages mais pas sur d&#8217;autres.</p>
<p>À ce compte là autant lister les images à précharger dans un tableau javascript au lieu de lire toute la feuille de style. Ou mieux, des <a href="https://developer.mozilla.org/En/Link_prefetching_FAQ">&lt;link rel=&nbsp;&raquo;prefetch&nbsp;&raquo;&gt;</a> parce que c&#8217;est fait pour ça.</p>
<p>Enfin, c&#8217;est surtout utile pour les changement d&#8217;image au survol de la souris, ou sur une action utilisateur. Dans ce cas on modifie l&#8217;image en cours, ou on affiche des icônes. Bref, on se retrouve très généralement dans des cas où les images concernées sont de toutes façons dans des sprites, soit avec une liste d&#8217;icône, soit avec l&#8217;image qu&#8217;on remplace &#8211; l&#8217;image contient alors et la version sans survol et la version avec survol.</p>
<p>Bref, l&#8217;idée est bonne mais je reste septique sur la pertinence de mettre en place une solution générique de ce type.</p>
]]></content:encoded>
			<wfw:commentRss>http://performance.survol.fr/2009/04/prechargement-des-images-css-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>6</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>
	</channel>
</rss>
