Ce site est laissé à l’abandon, mais les choses continuent doucement sous d’autres cieux. En particulier le livre sur les performances web, déjà bien avancé, amorce une transition vers un développement communautaire. Je vous invite sur le projet github et sur le billet qui annonce cette migration.
Archives de la catégorie : Performance
Livre sur les performance cherche famille d’accueil
Le livre sur les performances des sites web a besoin de vous et cherche de nouveaux parents. Tous les détails sont sur le billet dédié.
Les horloges de webpagetest
Ce billet est un premier billet (et j’espère pas le dernier) d’un auteur différent. C’est donc Armel Fauveau qui écrit ci-dessous et non l’auteur habituel. Bienvenu à lui. — Éric. Préambule Suite à la proposition d’Éric, je vais vous relater une petite curiosité technique rencontrée dans le cadre de l’administration quotidienne des serveurs WebPagetest Parisiens. […]
Pause
J’ai toujours déclaré que je suivrai le rythme d’écriture qui me plait, ne me forçant pas à écrire quand je n’en ai pas envie. Ces derniers mois il y a donc eu peu de billets, traduisant une situation personnelle qui occupe suffisamment mon esprit pour que je ne me disperse pas trop. Il est temps […]
Automatisation de Yslow
La prise de conscience sur le sujet des performances web évolue. Beaucoup d’équipes ont désormais appliqué quelques recettes de base, ou ont au moins un item dédié dans la liste des choses à faire. Il reste toutefois à passer une phase d’industrialisation. Lancer Yslow tous les mois à la main n’est pas toujours idéal. Cela […]
Experience de voici.fr
J’aime bien apporter un peu de retours d’expérience, pour montrer que toute la théorie fonctionne aussi en pratique. Certes il y a Yahoo!, Google, Amazon, mais ce sont des trop gros sites pour que le développeur moyen se sente impliqué. Alors voilà, Charles-Christian Croix nous parle un peu de ce qui a été réalisé sur […]
Priorisation des onglets sur Firefox
Je ne donne pas de nouvelles mais je suis toujours de près toutes les actualités liées à la performance. En ce moment il y a peu d’articles techniques qui font de réelles avancées. L’innovation vient plutôt du navigateur, et Mozilla fait un sacré travail. Il y a une dizaine de jours j’ai vu l’annonce d’une […]
Pngrewrite sous linux
Je fais encore le tour des outils de compression d’image pour faire la comparaison et trouver le bon compromis entre ressources consommées et efficacité. Un de mes problème c’est punypng qui annonce des performances exceptionnelles mais qui ne détaille pas son fonctionnement et ne propose même pas d’API. Je vérifierai leurs affirmations et tenterai de […]
Performance ressentie avec Mozilla
Ici je m’attache beaucoup aux chiffres : temps de chargement complet, latence, nombre de composants, etc. J’ai besoin de convaincre et seuls les chiffres ont l’objectivité nécessaire pour pouvoir travailler avec des gens non convaincus. Toutefois, une fois dépassé ce stade il faudrait se détacher un peu des chiffres pour parler de performance ressentie et […]
Page lente = taux d’abandon important
On en parlait il y a deux semaines dans le résumé de Steve Souders mais il semble que la statistique mise en avant avait peut être quelques défauts. On en a reparlé entre temps avec un joli graphique en camembert, et on a encore reparlé de la pertinence de la statistique. Il nous reste deux […]
Velocity, les armes secrètes d’AOL
Toujours aux conferences Velocity de juin dernier, Dave Artz d’AOL mérite un billet propre. Je regrette de ne pas en avoir trouvé la vidéo au milieu des autres vidéos Velocity.
Velocity, publicité, reflow, CDN, ajax et gzip
Je poursuis la lecture des vidéos et des présentations des conférences Velocity de juin dernier.
Punypng, un smushit-like
Smushit a disparu, ou presque. On nous parlait d’ouvrir le code source. Il y avait une API pour faire des tests automatisés. Il était possible d’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’améliorations. […]
Optimiser vos images avec Photoshop
Nous avons parlé plus d’une fois d’optimisation d’images. Dans des billets sur les outils comme pngcrush les commentaires ont parfois dérivé (avec plaisir) sur les techniques d’optimisations et l’importance de gérer la qualité et la compression de l’image dès la création. Souvent ce n’est plus possible pour ceux qui s’occupent des performances mais si vous […]
Pourquoi partez-vous ?
À ceux qui demandent des armes contre des graphistes peu concernés par les performances, voici un superbe camembert qui nous vient d’un site de designers : En demandant à un panel d’utilisateurs ce qui les fait partir d’un site web trois réponses principales ont été individualisées. Votre graphiste sera très content de voir que les […]
Compte rendu des conférences Velocity – Steve Souders
S’il y a une série de conférences auxquelles vous devez assister sur les performances, ce sont les conférences Velocity. La seconde édition a eu lieu en juin dernier, je regrette que l’éloignement m’ait contraint à ne pas espérer y aller, mais heureusement il y a des présentations en ligne et des résumés. C’est le résumé […]
Astuce EzPublish pour optimiser les images
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 sur les images (si je soutiens l’idée de dégrader un peu les images, le faire […]
Améliorer le code javascript
Malgré le rappel de Douglas Crockford sur le fait que le code javascript lui-même représente au mieux 15% des performances de la page, il est parfois utile d’y jeter un oeil. Nicholas Zakas, de Yahoo!, propose un bon aperçu pour ceux que ça intéresse dans sa présentation « Writing Efficient javascript » aux conférences Velocity 2009. Variables […]
Corrélation entre le temps de rendu et la complexité CSS
On en a parlé plusieurs fois. Le temps de reflow d’un navigateur est dépendant de la complexité des feuilles de style, et particulièrement de la complexité des sélecteurs CSS. Google Page Speed y fait référence mais si vous voulez être convaincus il faut aller voir la présentation de Steve Souders aux conférences Velocity 2009. À […]
Even Faster : 2 – Reactive web app
Le second chapitre de « Even Faster Web Sites » m’a plus satisfait que le premier.Second chapitre. Il est nommé « créer des applications web réactives » et rédigé par Ben Galbraith and Dion Almaer, les fondateurs de ajaxian (vous connaissez forcément pas mal de mes liens pointent là bas). Il n’y a plus de phrase qui accroche le […]
Quelle cible de performance ?
Il faut surveiller les performances, mais quelles limites se poser ? Quelle cible doit avoir votre application pour être considérée statisfaisante ? L’année dernière je reprenais ici même les chiffres de Jackob Nielsen, lui même les reprenant d’autres études qui remontent jusqu’en 68. On ne parle pas en effet que de site web. Puisque ces […]
Even Faster : 1 – ajax
Je vous avais dit que je ferai un retour sur le dernier livre de Steve Souders, « Even Faster Web Sites ». On commence par un chapitre qui n’est pas rédigé par Steve lui même, mais par Douglas Crockford, « Ajax Performance ». De l’Ajax par Douglas Crockford, ça donne envie. En fait Douglas y parle plutôt de compromis […]
Petit exemple de mise en pratique
Voici un petit exemple de comment mettre en place les bonnes pratiques de cache et de concaténation des fichiers javascripts. L’article date de 2006 mais n’a pas pris une ride. On y retrouve une réflexion sur comment regrouper les fichiers javascripts entre eux et comment les compresser. La note sur mod_gzip est toutefois assez contestable. […]
Point trop n’en faut
En ce moment se tiennent les conférences Velocity en Californie. C’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 à plusieurs de ces publications à propos des sprites CSS, il est temps de faire ici […]
Le mythe des 24Mb/s
Il semble qu’il faille parler un peu de bande passante. Nos meilleurs fournisseurs d’accès Internet promettent une bande passante de 24Mb/s. Monsieur tout le monde a l’impression de profiter d’une bande passante extraordinaire. L’internaute averti sait lui que ce n’est pas toujours le cas mais il va jusqu’à choisir son appartement en fonction de la […]
Optimisation JPEG (encore)
je vous ai parlé plus d’une fois de recompression des images PNG. Mais … 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’image à différentes résolutions pour gérer des miniatures, ou même des pistes audio. Stoyan Stefanov a […]
DNS Prefetch
J’adore le principe du préchargement. Il s’agit tout simplement de charger par avance les informations dont on pense avoir besoin plus tard pour pouvoir les utiliser instantanément à ce moment là. Quand plus rien ne fonctionne, le préchargement peut encore améliorer les choses. Firefox faisait déjà du préchargement, intelligemment, et ça sera probablement spécifié dans HTML […]
Even Faster Web Sites
Le second livre de Steve Souders sur la performance web, Even Faster Web Sites, est paru il y a une semaine aux éditions O’Reilly. Il est disponible en papier et en PDF (avec pour le même prix une version ebook pour lire dans le métro). Je ne l’avais pas caché, je n’ai pas aimé l’organisation […]
Pngcrush ou Optipng ?
Je reprend mon test précédent, plus de 7000 images PNG de taille diverses, beaucoup de 1 à 5 ko, d’autres jusqu’à 250 ko pour un total de 450 Mo. Faut-il utiliser pngcrush ou optipng pour recompresser ses images png ? PNGcrush me donnait 403 Mo (10% de gain) pour 75 minutes avec les options par défaut, et […]
Petit point sur les caches
Votre page peut-elle être mise en cache par le navigateur ? voyons ce qu’il en est en théorie avec HTTP 1.1 (en pratique le navigateur fera toujours ce qu’il veut, et il y a plus de couples navigateur/configuration que vous ne l’imaginez, donc n’ayez aucune certitude).
Résultats de PNGcrush
Je fais depuis quelques jours des tests avec différents outils d’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 là pour répondre à la question « dois-je utiliser les options pour pousser l’outil à bout […]
Google Page Speed
L’équipe performance de Yahoo! a fait un boulot extraordinaire concernant la performance web, et continue à le faire. On lui doit beaucoup de recherches inédites, les premières publications à la masse de développeurs, Yslow, Smushit… Google ne pouvait pas être en reste, surtout que Steve Souders, le monsieur performance de Yahoo!, est passé à Google depuis […]
Latence et CDN
La latence est une des composantes qui pénalise le plus les performances actuellement. Les connexions Internet françaises se font plutôt à haut débit, et même un mauvais wifi laisse finalement passer assez de trafic pour que ce soit viable. Par contre, avec l’explosion du nombre de composants par page, la latence est probablement le facteur […]
Statistiques Yslow
La collecte de statistiques réaliste est difficile. Je m’y essaie en ce moment pour l’écriture d’un livre sur les performances mais le résultat n’est pas à la hauteur de mes espérances. Show slow a lancé une initiative intéressante sur ce terrain. Le site propose à tous ceux qui ont installé Yslow d’envoyer automatiquement les résultats […]
Séparer en plusieurs domaines ?
L’année dernière je parlais du nombre de requêtes simultanées vers un même domaine. L’année dernière Internet Explorer 6 et 7 (2 requêtes simultanées) étaient fortement majoritaire, Firefox 3 (6 requêtes simultanées) était moins répandu que maintenant. L’étude de Yahoo! a été faite il y a deux ans, sur des bases encore moins favorables. Avec ces […]
Préchargement des images CSS avec Jquery
Dans le préchargement l’idée est de faire travailler le navigateur avant que l’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’ils serviront plus tard. C’est très intéressant pour quelques […]
Performance du navigateur et reflow
On a parlé des questions de rendu en novembre et plus récemment j’ai ressorti un vieux lien vers trois vidéos montrant les phases de rendu de Gecko. Il y a quelques jours j’ai aussi abordé la lenteur du DOM dans les navigateurs. Tous les problèmes de performance ne sont pas dus au réseau. Le navigateur […]
Lenteur du DOM
De nombreux sites dits « web 2,0 » utilisent javascript à outrance. Leur performance tient généralement à la bonne ou la mauvaise utilisation de javascript. Aujourd’hui nous pouvons parler du DOM, et l’accès au DOM est lent : évitez le.
Mesurer la performance avec Jiffy
Jiffy est un projet mené par Netflix et présenté aux conférences Velocity 2008 (en ligne, pdf, vidéo) par Bill Scoot (tiens, encore un ancien Yahoo!). Personne n’a l’air d’en avoir parlé depuis mais le projet est suffisamment intéressant pour mériter de s’y arrêter.
Encore des outils
Je vous avais parlé il y a quelques temps d’un plugin wordpress pour smushit et d’un script en php pour gérer cache, minimisation et concaténation des fichiers statiques. Voici d’autres briques du même type. Plus que les outils eux-même, qui n’ont rien de révolutionnaires, c’est la prise de conscience des questions de performance par les […]
Cache central des bibliothèques javascript
On m’a posé quelques fois la question alors voici la réponse : Oui. Oui il faut, quand vous le pouvez, utiliser les liens centralisés de Google ou de Yahoo pour vos bibliothèques javascript. Je parle de ne pas recopier jquery ou yui directement sur vos serveurs, mais d’utiliser les liens centralisés proposés par les deux […]
Google SDCH et HTTP
On vous a dit de compresser vos échanges HTTP avec gzip ou deflate, des les identifier avec des ETag, mais pouvons nous faire mieux ? C’est la question abordée par certaines équipes de Google (slides disponibles) en juin dernier aux conférences Velocity 2008. Ils partent du principe qu’une page web est composée de plusieurs éléments, […]
Introduction avec AOL Pagetest
Je vous avais parlé il y a quelques temps de webpagetest.org, la version en ligne de AOL Pagetest. C’est un des outils de base pour la mesure de performance dans le navigateur, avec des résultats très complets. Il ne s’agit pas de revenir sur l’outil, mais de vous signaler une vidéo (en anglais) qui détaille […]
Vidéo de la phase de rendu du navigateur
Que fait le navigateur pendant le rendu ? pourquoi est-ce si long ? La question est complexe à répondre pour qui n’a pas touché au moteur d’un navigateur. Pour vous donner un premier aperçu, vous avez toutefois trois vidéo (faites par Satoshi Ueyamai pour une présentation au Japon). Elles vous montrent les différentes étapes de […]
Plugin wordpress et outils automatiques
Parler de la performance web c’est d’abord convaincre que c’est important, puis rappeler qu’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 de la compression des contenus.
Aperçu de Yslow 2.0
J’avais déjà présenté Yslow, et de toutes façons tous ceux qui lisent ce blog doivent maintenant connaître cet outil indispensable. Stoyan Stefanov, de l’équipe performande de Yahoo!, a fait en chine la première présentation sur ce qui arrive avec la version 2.0 de Yslow. Pour tout vous dire j’avais le secret espoir que l’annonce de […]
Vidéo de Performances Web à l’AFUP
Je vous en parlais le mois dernier, désormais c’est la vidéo de mon intervention au forum PHP AFUP 2008 qui est disponible en ligne. Les slides eux sont toujours dans mon précédent billet. Je vous laisse donc regarder la vidéo performance web sur PHPTV, qui a enregistré ça le jour des conférences et publié à […]
Encore sur le cache de l’iPhone
L’iPhone a changé la donne sur la consultation du web par les mobiles. Avant nous luttions pour faire comprendre que les performances des sites web devaient aussi être adaptées à une consultation avec une grande latence et une très faible bande passante. Maintenant nous voyons même apparaître des sites spécifiques iPhone. Apple lui même met […]
Quelques outils en ligne
Je vous avais présenté quelques outils, aujourd’hui en voilà trois autres, en ligne. Le concept de ces outils est le même : on prend une URL, on lance la page, et on trace la cascade des requêtes HTTP avec quelques statistiques. C’est là qu’on voit le temps pris par chaque composant, par la somme des […]
Performances web à l’Afup
J’ai eu l’occasion d’intervenir ce matin au forum PHP Afup pour parler de performances web. La session a été enregistrée donc vous aurez certainement des vidéos, entre temps je vous propos les slides :
Quel avenir ?
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’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 ? Sus au navigateur ! Ma première […]
Questions de rendu
Ce lien on me l’a donné plus d’une douzaine de fois, et c’est vrai que c’est intéressant. Je regrette même de ne pas avoir eu une intervention similaire pour Paris Web 2008. De quoi je parle ? de l’intervention de David Baron aux Tech Talks de Google le 18 novembre dernier. David Baron c’est un […]
Velocity 2009 – Appel à participation
Plusieurs de mes billets ont pris comme base des présentations données aux conferences Velocity de 2008. Il s’agit d’un événement organisé par O’Reilly où on y parle performance en long en large et en travers. Alors voilà, ils viennent de publier un appel à participation pour l’année prochaine en Californie, juin 2009 exactement. Si vous […]
Un livre sur les performances web
Pour l’instant il n’existe que quelques ressources sur les performances web vues du client. La plupart sont des blogs assez similaires au mien, avec des liens et des articles épars. En fait mon égo me fait croire que le mien est non seulement le seul en français mais le plus complet toutes langues confondues. Il […]
Votre problème n’est pas sur la page HTML elle-même
Parlez de performance de sites web à un ingénieur standard, le voilà déjà tentant d’optimiser son code PHP ou son code Java, et de lancer des sondes sur son serveur de bases de données. Oh, c’est important et des fois l’applicatif est vraiment mal fait, mais généralement ce n’est pas ce qui pose problème, mais […]
État des lieux du web français
Afin d’avoir des chiffres réels archivés, j’ai fait un bref état des lieux du web français. Il s’agit de mesurer 12 pages d’accueil à fort trafic représentatives des usages français. Le résultat n’est pas glorieux :
Performances, un sujet pas si récent que ça
On entend sérieusement parler des performances des sites web depuis quoi, un an ? deux ans pour les plus débrouillards ? Pourtant j’ai remonté les archives pour vous. Histoire de prendre une figure connue j’ai pris Jakob Nielsen. Jakob est peut être le dinosaure de l’utilisabilité (ou usabilité, je vous laisse choisir votre terme). Il […]
Éviter les événements trop fréquents
Les bons développeurs javascript utilisent les événements, à toutes les sauces. En fait quasiment tout ce qui est fait en javascript est en réaction à un événement. On arrive à deux problématiques qui ont un un impact plus ou moins important sur les performances :
Performance des sélecteurs CSS, encore un mot
On reparle des performances CSS. Souvenez-vous, je vous avais parlé d’un document de Mozilla faisant état des sélecteurs plus ou moins performants. S’était ensuivi une discussion à propos de la pertinence de tels sujets vu la différence de performance mise en oeuvre. Je vous invite à relire ce second billet, qui résume assez bien. Si […]
Une version mobile pour les PC classiques ?
Alors voilà, je pensais sauter le billet du vendredi. Je suis un Turquie pour donner deux conférences éclair et mon accès Internet est irrégulier. Pas de quoi modérer les commentaires. Par contre je me retrouve pile dans l’usage où la performance est nécessaire, indispensable. Au milieu du CEBIT, une borne wifi est ouverte. J’en profite […]
Les cookies font grossir
Vous le savez, les cookies font grossir. Pour éviter de grossir on peut bannir les cookies. On peut tenter d’en manger un seul de temps en temps, quitte à ce qu’il soit un peu gros, plutôt que grignoter toute la journée. Il est aussi bon de se mettre des directives simples comme laisser les cookies […]
Vérifiez vos images
Il y a encore peu de temps pour vérifier les images d’un site je prenais Firebug, je téléchargeais toutes les images une à une, puis je tentais de retirer les méta données avec PNGcrush ou un équivalent (en fait plusieurs parce que les images donnent parfois de meilleurs résultats sur un outil parfois sur un […]
Prenez vos cours avec Steve Souders
Le saviez-vous ? Certaines universités ont des cours très pointus et pertinents sur les technologies web client, y compris sur les performances. Ne vous emballez pas, ce n’est pas demain la veille que ça arrivera en France. Chez nous c’est déjà bien si on enseigne du HTML conforme aux normes et si on parle programmation […]
Expires et Cache-Control, une date limite de consommation pour vos contenus
Je parle de détails et de ce que je rencontre dans mes lectures, et j’en oublie le principal. alors voilà, si vous ne devez retenir qu’une chose c’est d’utiliser des dates d’expiration explicites sur vos contenus. Il s’agit d’informer le navigateur que votre contenu est valable pendant une certaine durée. Cela peut être dix minutes, […]
Mode de rendu des tableaux
Pour ceux qui doutes Microsoft en parle dans son article sur les performances, mais ce point là est généralement bien accepté car la différence de performance est parfois flagrante. Sitepoint en parle aussi d’ailleurs : Le mode de rendu des tableaux impacte les performances.
Erreurs de syntaxe
J’ai beaucoup parlé de CSS, de réseau, de javascript, et j’entend parfois dire que le HTML lui n’a aucune importance. Ce n’est malheureusement pas vrai. Il y a au moins trois points à regarder dans le HTML : la qualité syntaxique du code, le mode de rendu des tableaux, et le nombre de noeuds DOM. […]
Paris Web 2008
Certains le savent, d’autres, pas encore, mais vous me retrouverez mi-novembre à Paris Web 2008 pour une conférence et un atelier sur les performances web, en collaboration avec Nicole Sullivan de l’équipe performance de Yahoo!
Précharger les vidéos, oui mais…
Qui aime attendre pour charger une vidéo ? probablement personne. Du coup quand vous arrivez sur une page avec une vidéo, le lecteur précharge le début au cas où vous voudriez la jouer. Même une fois en lecture, votre logiciel tente d’avoir toujours une avance confortable sur le chargement de la vidéo afin de vous […]
Des chiffres à vous rendre malade
La taille des pages a plus que triplé en 5 ans, passant de 90Ko à 310Ko. Dans le même temps on a aussi doublé le nombre de composants externes par page (de 25 à 50). Cette progression ne faiblit pas, bien au contraire. Attention, je bourre le reste de l’article de chiffres, et certains font […]
Présentation au W3Café
Je vous en avais parlé il y a une semaine, voici donc le contenu de notre présentation sur les performances avec Mathieu Pillard et Anthony Ricaud au dernier W3Café. J’espère que nous aurons l’occasion de faire un suivi dans un prochain W3Café, en tout cas vous pourrez suivre le sujet ici même (oui, j’ai ralenti […]
WaSP Café ce vendredi
J’ai le plaisir de participer demain (vendredi 5 septembre) au WaSP Café qui se tient dans les locaux de l’IESA, à Paris. Avec Mathieu Pillard et Anthony Ricaud, nous dirigerons une présentation et des discussions sur la problématique des performances Web. Vous êtes tous les bienvenus, à condition de vous être inscrits (mais il semble que […]
Normalisez vos liens
Je viens de croiser une liste de recommandations Microsoft pour la performance des sites web. On y retrouve plusieurs choses connues et une recommandation sur la cohérence des liens. La page MSDN donne l’exemple d’un même lien avec deux casses différentes. Certains serveurs ignoreront la casse ou corrigeront le lien mais cela restera deux ressources […]
Concaténation de chaînes de caractères en javascript
Dans la plupart des langages, les chaînes de caractères ne sont pas modifiables. Ajouter un caractère à une chaîne existante c’est créer un nouvel objet avec la chaîne résultante. Parfois comme dans ruby ce n’est pas visible pour l’utilisateur mais c’est bien ce qui est fait en interne. pour éviter que de multiples concaténations ne […]
Styles avec et sans Javascript
Charger le javascript le plus tard possible, ou au moins de manière asynchrone, implique que le visiteur risque de voir la page avant l’exécution du dit javascript. Si le javascript enrichit ou modifie la page, le visiteur aura la désagréable surprise de voir la page se modifier sous ses yeux. Dans un des premiers billets je […]
Javascript en ligne
Je fais suite au précédent billet sur la présentation de Steve Souders aux conférences Velocity 2008. Tout à la fin il nous donne une seconde information sur le javascript inline, et ceci est une nouveauté pour moi. La situation de base : Firefox bloque tous les nouveaux téléchargements quand il récupère une feuille de style. […]
Javascript non bloquant
Je vous l’avais dit, une balise <script> bloque le rendu et les nouveaux téléchargements dans le navigateur le temps que le javascript soit complètement téléchargé et exécuté. Une des solutions c’est de reléguer cette balise à la fin du document. Il y a des fois où ce n’est pas idéal et c’est Steve Souders qui […]
Où vous situez-vous ?
Et vous, où en êtes-vous ? Rob Larsen a récupéré une liste de 200 sites américains et a fait fonctionner yslow sur chacun d’eux en janvier dernier. Les résultats c’est 5 A, 6 B, 14 C and 31 D et le reste en F. Attention à ne pas en tirer des conclusions trop hative sur l’importance ou non de s’intéresser aux performances. […]
Dégradez les PNG, faites des compromis
Je continue avec l’excellente présentation de Stoyan Stefanov et je prend la suite de la discussion en commentaire d’il y a quinze jours. Passez en 256 couleurs Un PNG24 c’est 16 millions de couleurs. En pratique les PNG on souvent moins de 1000 couleurs. Si vous avez besoin des 16 millions ce que vous […]
Interpréteur JSON natif pour webkit
Je vous en parlais il y a presque deux mois, JSON c’est lent à interpréter si on le fait bien. C’est même globalement plus lent que XML parce que le code est en javascript, côté utilisateur, alors que XML est géré nativement par les navigateurs. La solution c’est l’arrivée de moteurs JSON natifs dans les […]
Analyse d’une requête HTTP – serveur et réseau
On parle de temps, de performance, mais finalement que mesure t-on ? La question n’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 ?
Pensez aux favicon
Le favicon je pense que vous voyez ce que c’est : cette petite icône bête et méchante qu’on voit à côté de l’URL dans la barre d’adresse du navigateur. Là où c’est moins intuitif c’est que ce favicon peut avoir un impact important dans les performances de votre site.
Ne pas filtrer les PNGs
Utiliser les filtres CSS d’Internet Explorer n’est pas une bonne idée. Déjà ils sont inutiles la plupart du temps, quand vous pouvez vous contenter d’un PNG8 avec une transparence binaire (c’est à dire la plupart du temps si vous avez suivi le début de la phrase), mais en plus ils sont lents. Quand vous faites […]
Optimisation JPEG
Je vous avais rapidement parlé de pngcrush pour optimiser les images PNG, sans aucune perte de qualité. Stoyan Stefanov nous propose jpegtran dans sa dernière présentation sur l’optimisation des images.
Optimisation d’images – 7 erreurs
Stoyan Stefanov, de l’équipe Performance de Yahoo! a donné une présentation fin juin sur l’optimisation des images. J’ai déjà parlé de plusieurs choses, il en rajoute d’autres, avec des chiffres percutants et des explications concices.
Optimiser les performances d’un site web
je vous en avais parlé, maintenant c’est fait. Camille Roux et Nicolas Chevallier ont ont réalisé une présentation sur l’optimisation des performances d’un site web aux Intellicore Tech Talks. Vous avez donc maintenant la vidéo et les slides disponibles en ligne. Commentaires et comptes rendus bienvenus.
Combien de temps attendre ?
À partir de quand une page est-elle lente ? Combien de temps est prêt à attendre un utilisateur ?
Les outils : Yslow
Aujourd’hui je fais réviser les bases avec Yslow. Il s’agit d’un outil développé par Yahoo! pour vérifier de façon automatisée l’application des règles de performances web internes. Il offre une vue rapide du poids et du temps de rendu de la page, une notation après vérification une à une de 13 des règles de performance […]
Intellicore Tech Talks sur les performances web
Camille Roux me fait part qu’il co-animera avec Nicolas Chevallier une présentation sur l’optimisation des performances d’un site web dans le cadre des Intellicore Tech Talks. Cette présentation se tiendra le mardi 8 Juillet à 13h à Sophia-Antipolis.
Attention aux compresseurs javascript
En avril je vous parlais du packer de Dean Edwards qui permet de miniser le code javascript avant envoi. J’émettais un doute sur l’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 eval() pour l’exécuter. C’est tout sauf transparent pour […]
Des sprites jusqu’à plus soif
Ceux qui ont utilisé les jeux vidéo il y a 10 ou 15 ans connaissent forcément les sprites. Pour économiser les ressources on regroupe toutes les icônes et les images dans un ou plusieurs fichiers. Le résultat c’est une sorte de tableau d’images, le jeu utilise alors simplement une partie de cette image à chaque […]
Désactiver les ETags ?
Après un test de votre site sur Yslow vous retrouvez une recommandation qui vous propose de désactiver les ETags. Une recherche rapide vous mène sur les pages de l’équipe performance de Yahoo! qui vous disent la même chose. Qu’est ce qu’un ETag ? Un ETag sert au serveur web à identifier une ressource et sa […]
DOM et autres innerHTML
Un petit peu de Javascript ? C’est Peter-Paul Koch aussi dit PPK qui lance la question sur Quicksmode il y a trois mois. Il tente de comparer diverses méthodes pour ajouter du contenu à une page, et plus spécifiquement innerHTML et les fonctions DOM (par DOM j’entend appendChild, createElement et associés).
Images, PNG et GIF
Et si on parlait un peu des images ? du point de vue des performances web, toujours. Sur un site classique comme TF1, Amazon, LeMonde, on dépasse les 100 images sur la page d’accueil, pour un total de près de 300ko. Les sites plus au fait des problèmes de performance ont entre 30 et 50 […]
SquirrelFish dans WebKit
On en parlait il y a peu mais ça vaut le coup de faire un petit billet dédié : L’équipe de WebKit vient d’annoncer l’intégration de SquirrelFish. SquirrelFish c’est une réécriture de Javascript Core, leur moteur Javascript.
À quoi ça sert ?
J’abuse, il parait. Je parle de demi seconde ou même de centaines de milli-secondes. Je parle de quelques dizaines de kilo-octets là où la plupart ont des pages qui en font cinq ou dix fois plus. Alors voilà, j’assume. Mais peut être que ça vaut le coup de rappeler trois chiffres qui permettront à chacun […]
Lessive et performance
La communication des éditeurs de navigateur ressemble plus en plus à celle des vendeurs de lessive, mais au moins on commence à voir l’importance des performances. Le navigateur le plus rapide au monde ! On apprend ainsi que Firefox 3 est le navigateur le plus rapide au monde ! En France c’est bien sûr Tristan […]
Et pour le mobile ?
Les mobiles ont longtemps été une cible très spécifique à base de WAP. C’est maintenant révolu et on a de réels navigateurs complets avec javascript et CSS. Que peut-on faire de spécifique pour le Web mobile ? C’est Jason Grigsby de cloudfour qui vient de donner une présentation « Going fast on the mobile web« . Les […]
Privé ou public ?
La directive Cache-Control est une vrai mine d’or pour la gestion du cache, au risque même de faire un peu fourre-tout. Aujourd’hui je m’intéresse surtout aux notions de document public et de document privé. Visibilité et autorisation de cache Pour faire court, cette directive contient quatre paramètres de visibilité : public, private, no-cache et no-store.
Portée des variables Javascript
Après CSS, faisons un petit passage par Javascript. C’est Yoan qui m’a fait passé un lien intéressant d’Ariel Flesler. La portée des variables javascript La portée des variables Javascript trompe souvent le développeur débutant. Les variables variables fonctionnent par bloc de code. Pour faire court un bloc c’est ce qui est délimité par des accolades […]
Gains de performance des sélecteurs CSS
Je parlais il y a quelques jours de performance des sélecteurs CSS. Il y a eu quelques réactions et j’ai échoué dans mes explications : les différences de performance dont on parle ici sont probablement négligeables la plupart du temps. Hors commentaires, certains m’ont rappelé que la documentation de Mozilla concerne d’ailleurs au départ les […]
Limitations du cache Safari
Pour l’iphone Safari a de sérieuses limitations sur le cache. Yahoo! avait déjà débusqué les limites de la version iphone : les fichiers ne doivent pas dépasser 25 ko une fois décompressés et le total doit être strictement inférieur à 500 ko. Ces limitations semblent raisonnables pour un téléphone mais ce téléphone navigue souvent sur […]
Performance des sélecteurs CSS
Nous avons peu d’informations officielles de la part des navigateurs sur les performances de leurs moteurs. Le Mozilla Developer Center nous propose tout de même une courte page sur comment écrire des feuilles de style efficaces. Dans ce billet j’appellerai critère une partie de sélecteur qui contient un identifiant, une classe, un nom de balise […]
Un mode « fast » ?
C’est peut être ce qui résoudrait quelques problèmes de performances : une option « fast » en javascript. Cela permettrait de déclarer qu’on n’utilise pas de document.write et ne plus bloquer le rendu du navigateur. On pourrait aussi déclarer ne pas toucher aux prototypes des objets de base pour bénéficier de meilleures optimisations de l’interpréteur. Si les moteurs […]
Les outils : le Cuzillon
Tester les performances nécessite du temps, beaucoup de temps. Il y a de nombreux outils qui permettent de tracer les téléchargements, les requêtes, les temps d’attente, etc. Ce qui manque c’est la page à tester. À chaque itération il faut changer le code html, le css, le javascript, les images. J’ai de mon côté un […]
JSON ?
JSON ! c’est le cri de tous les développeurs web à la mode dès qu’ils entendent parler d’échanges de données. Ce format est sensé être plus performant, plus simple, plus standard, plus performant, plus web 2.0 quoi. Plusieurs points mériteraient un billet à part entière, et je suis en désaccord sur chacun d’eux, mais je […]
Pages d’erreur
Rappelez-vous : cool URIs don’t change (les URIs sympa ne changent pas), et mieux, autant que possible elle ne disparaissent pas non plus. Reste que beaucoup d’éditeurs ne tiennent pas compte de cette recommandation, et que les développeurs ne peuvent s’abstenir de faire des erreurs quand ils font des liens. Ces pages d’erreurs donnent une piètre […]
CSS et @import
Il y a peu on a vu fleurir des liens vers des propositions au groupe de travail CSS. Et en particulier une proposition de variables CSS. Ces variables peuvent être changées dynamiquement en javascript. Le rendu est alors refait avec la nouvelle valeur, partout où la variable était utilisée. La question des performances Si vous […]
Compression avant transfert
Après avoir parlé de minimisation, il est temps de parler de compression, la règle 4 des recommandations de l’équipe performance Yahoo!. Trop gros Une part importantes des téléchargements sont réalisés sur de simples fichiers textes : HTML, javascript, CSS, XML et JSON. Mis côte à côte ils peuvent représenter un poids non négligeable. C’est particulièrement vrai […]
Minimiser le javascript
Pour diminuer la taille des téléchargements on utilise la compression et la minimisation. La minimisation c’est l’art d’enlever tout ce qui est inutile dans un fichier : espaces blancs, commentaires, et éventuellement noms de variables longs.
Pipelining : enchaîner les requêtes HTTP
Le pipelining HTTP c’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’il les a, potentiellement en parallèle aux requêtes du navigateur. Non seulement on utilise le principe de la connexion […]
Keep-alive et connexions persistantes
La latence réseau a un impact très important sur les performances. Si les ressources sont zippées, que vos images sont correctement compressées, et que les fichiers textes sont minimisés, la latence peut devenir presque plus pénalisante que les téléchargements eux même.
Limitation du nombre de requêtes
Nos navigateurs sont performants, ils savent gérer plusieurs téléchargements en parallèle. Ca nous permet de palier les serveurs lents, et d’optimiser le réseau. Le temps qu’on se connecte sur un serveur, qu’on fasse une requête DNS, le réseau reste occupé avec d’autres téléchargements. Sans limite ? On ne peut pas non plus tout télécharger en […]
Attendre le javascript
Hier j’ai tenté de convaincre de mettre les codes javascript à la fin du document. Et là, d’ordinaire, chacun trouve une raison pour ne pas suivre le conseil. Des fois de très bonnes raison, souvent des contestables. Pourquoi pas ?
Javascript à sa place
Chaque fois que je parle de reléguer les codes javascript en fin de page, je vois une moue sur le visage de mon interlocuteur. Mettre le javascript dans le <body> du document, et encore plus à la fin de celui-ci, et souvent préjugé comme une pratique « sale ». Laissez moi vous convaincre du contraire.
Rappeler la base
Il est toujours bon de rappeler l’essentiel. Je propose donc à ceux qui ne l’ont pas fait de découvrir les règles et priorités de l’équipe performance de Yahoo!. Vous y trouverez un total de 34 pistes ou directives, classées par ordre de priorité. Si vous avez déjà en tête les 14 premières, vous évitez déjà […]
Impact de la latence réseau
Après avoir parlé hier des stratégies d’optimisation, parlons rapidement de ce qu’il y a à gagner. Je me concentre sur la stratégie la plus fréquente : tenter de regrouper nos ressources dans des gros fichiers globaux. Pour l’exemple, j’ai arbitrairement utilisé le blog de Frédéric de Villamil. La page semble assez rapide à charger. Concrêtement, […]
Stratégies d’optimisation du cache
Deux règles principales pour la performance des sites web sont de réduire le nombre de requêtes HTTP et de limiter la taille des données qu’on télécharge. Malheureusement ces deux règles entre parfois en conflit. Si je fais un gros fichier unique pour toutes mes CSS, je vais inclure des règles qui seront inutiles pour la […]
Impact du cache HTTP
Le cache HTTP permet aux visiteurs de ne pas re-télécharger les pages ou les éléments de pages qui l’ont déjà été. C’est un des meilleurs mécanismes pour accélérer l’accès du navigateur au contenu mais il est mis en échec par de nombreux cas.