Skip to main content

Home/ Web Performance/ Group items tagged source

Rss Feed Group items tagged

Frank Taillandier

Welcome YSlow Open Source - 3 views

  •  
    Yslow devient opensource et le code est dispo sur Github, je découvre au passage une utilisation possible en ligne de commande avec node.js
anonymous

Scour is an open-source Python script that aggressively cleans SVG files - 1 views

  •  
    "Scour is an open-source Python script that aggressively cleans SVG files, removing a lot of 'cruft' that certain tools or authors embed into their documents. The goal of scour is to provide an identically rendered image"
Nicolas Hodin

YSlow for Command Line - 0 views

  •  
    YSlow for Command Line runs on Node.JS and requires a HAR file as input source in order to analyze page performance. It is currently available as a NPM package for installation.
Éric D.

YSlow 2.0 early preview in China - Technical Presentations - 2 views

  •  
    Source initiale du "5 à 9% d'abandon pour 400ms"
Mathieu Pillard

Script optimisation PNG - 2 views

  •  
    Le script est basique, j'ai déjà une version plus complexe gérant plusieurs formats mais je ne connaissais pas du tout (ou alors je l'ai oublié :) advdef, à tester.
  • ...6 more comments...
  •  
    Comme je suis chiant moi j'ai repassé ton image à pngnqi (http://pornel.net/pngnq, sous linux mieux vaut rester sur le pnqnq "normal", les sources sont à jours avec le pngnqi). Je suis tombé à 7397 octets (8321 octets pour l'original). C'est toujours un peu magique pour moi les outils d'optimisation d'image, très vaste comme sujet.
  •  
    pngnq il ne fait pas une quantification et donc une modification de la qualité de l'image ? Peut être que visuellement elle n'est pas impactante, mais si c'est le cas ce n'est pas un outil utilisable en automatique et d'un coup le bénéfice/cout par rapport à optipng devient assez faible
  •  
    oulà, je n'avais pas encore vu le lien, faire tourner pngcrush + optipng + advpng, ça fait lourd en cpu. Est-ce que vraiment le gain par rapport à un optipng (qui normalement fait tout ce que fait pngcrush) vaut le coup ? Quand j'avais tenté tous mes tests sur différents outils et différents paramètres, j'étais revenu à la raison : le surcout par rapport au optipng avec les options par défaut vaut rarement les différence de taille au résultat
  •  
    Pour utilise pngnq en automatique, il faut contrôler le nombre de couleurs dans l'image, car si on lui passe un png24 il en fait un png8. En gros en dessous de 2500 couleurs, on peut tranquilement passer à un png8. Bien sûr il faut faire des vérifications derrière. Trop souvent on utilise du png24 là où on devrait utiliser du png8. Png8 sait faire la transparence alpha (IE6 ne la comprends pas = pixel transparent mais pas un pâté gris comme sur le png24). Il faudra que j'expose mon programme nodejs qui fait tous ces contrôles et est paramétrable Voir http://zeroload.net/blog/zeroload%20latest%20achievements%20in%20web%20performance%20%28with%20details%29/
  •  
    Eric > Je ne comprends pas, ou plutôt je fais semblant de ne pas comprendre . Pourquoi le temps CPU pour optimiser les images est t'il si important ? Tu as déjà été confronté à des traitements supérieur à plusieurs jours (même parallélisés) ? Trois cas possible d'optimisation : 1. Optimiser par l'intégrateur (cas idéal) 2. Au moment de l'upload 3. Traitement par lot , en tâche de fond, N date / heure précise Dans le deuxième cas, mise à part des png supérieur à 3 - 4 mo, l'optimisation même maximum ne devrait pas poser de problème , si ? Dans le troisième cas, il y a toujours moyen de basculer les calculs pendant les heures creuses, voir d'utiliser temporaire des serveurs pour générer les nouveaux média (png, jpg). Une fois le média optimisé au maximum on n'y revient pas. Je dois probablement sous-estimer les temps de calculs, a t'on un ordre d'idée (Tps de calcul / Taille du png) ?
  •  
    Les temps se calculent en minutes (donc quelques heures pour traiter un lot). Ce n'est pas tant le cpu en lui même, c'est que ça peut différer une mise en production, et que toutes les boites n'ont pas une machines qui pourrait faire ça. Oui, je sais bien que trouver quelques heures de CPU devrait être ridicule, mais ça nécessite dans pas mal de boites d'allouer une machine spécifique, et ça ce n'est pas si anodin que ça (même si c'est crétin). Et oui, normalement les releases sont prévues à l'avance, surtout les éléments graphiques, mais en pratique ce n'est pas aussi bien fait et devoir lancer un traitement de quelques heures c'est ultra pénible. Mais surtout, quand la différence avec un simple optipng est de moins de 10Ko sur une page, au final ça ne vaut pas le coup de lancer une grosse automatisation et laisser l'outil sur le poste de l'intégrateur web (où le temps cpu ça compte) suffit largement.
  •  
    Pour information, lorsque j'ai du intégrer un traitement par lot, il y avait 45000 images. Donc optimiser toutes les images lors de la mise en production c'était du suicide. Dans leur cas c'était un traitement critique car en gros après traitement la page était moitié moins lourde (sachant qu'une page classique sur leur site c'était 500ko ..) Le traitement prenait environ 4 heures, sauf que, rien n'empêche de faire du différentiel, c'est ce que j'ai fais et ça va très vite à chaque mise en production il n'optimise que les nouvelles images. Bon si vous avez des millions d'images c'est autre chose, il faut une méthode plus fine.
  •  
    J'arrive après la bataille mais: Vincent: oui en fait, dans le reste de la discussion yavait mention de pngnq, j'ai juste choisi de ne parler que de ce commentaire la, parce-qu'il parlait de advdef, que je ne connaissais pas/plus. J'ai déjà eu des surprises avec pngnq, du coup je l'utilise uniquement à la mano, en vérifiant après coup la différence entre l'image d'origine et l'image optimisée (merci python + PIL) Eric: justement ce thread m'a donné envie de retester. Le temps CPU pour moi c'est peanuts, j'ai pas des millions d'images, ca prend 1 min max à chaque fois et ca peut être fait en hook post-commit sur le gestionnaire de sources.
Frank Taillandier

Apache mod_pagespeed - 3 views

  •  
    mod_pagespeed is an open-source Apache module that automatically optimizes web pages and resources on them. It does this by rewriting the resources using filters that implement web performance best practices. Webmasters and web developers can use mod_pagespeed to improve the performance of their web pages when serving content with the Apache HTTP Server.
anonymous

SpeedCurve - 0 views

  •  
    "The plan is simple... - Build a beautiful UI on top of the open source powerhouse that is WebPagetest. - Run everything in the cloud so you don't have to deal with software, servers and terabytes of tests. - Champion web performance benchmarking against competitors and industry categories. - De-geek front-end web performance techniques and bring them to a wider design and developer community who care about crafting their code."
  •  
    Je viens de tester le service. L'interface est agréable.. La procédure pour renseigner son site et "celle de ces concurrents" est un un peu longue. Parcontre le temps de génération des résultats est vraiment très longues. L'interface web ne présente pas l'avancée.
François D.

sitespeed.io - Analyze your website speed and performance - 1 views

  •  
    "Sitespeed.io is an open source tool that helps you analyze and optimize your website speed and performance based on performance best practices. It will collect data from multiple pages on your website (crawling from a start point), analyze the pages using performance best practices rules, and output the result as HTML-files or JUnit XML. You can see real life examples of analyzed sites here." Possibilité d'intégrer cet outil dans une plate-forme d'intégration continue (jenkins) : http://sitespeed.io/documentation/#junit
Laurent Paoletti

\"Le Web Performance Improvement,\" French Style | Web Performance Monitoring and Optim... - 1 views

  •  
    A month ago, we wrote about how the Home Depot improved their web performance through a major "Perflift". Today, we want to congratulate "l'equipe" at Le Monde for improving their website. While The New York Times is the number one newspaper in US, Le Monde is the number one news source in France and for French speakers around the world.
Laurent Paoletti

Analyze your website speed and performance - 3 views

  •  
    Sitespeed.io is an open source tool that helps you analyze your website speed and performance based on performance best practices and metrics. It collects data from multiple pages on your website, analyze the pages using the rules and output the result as HTML or JUnit XML.
anonymous

Efficiently Rendering CSS | CSS-Tricks - 16 views

  •  
    Ne pas oublier la fin : "I think the lesson here is not to sacrifice semantics or maintainability for efficient CSS"
  • ...10 more comments...
  •  
    je suis pas d'accord avec tout. par exemple : "Don't [tag qualify] with class names either" => j'avais justement lu le contraire. Qu'un "a.toto" était plus efficace qu'un ".toto". Mais ça dépend aussi peut-être des moteurs... D'ailleurs, je ne comprends pas pourquoi les moteurs ne cherchent pas d'abord le bout le plus discriminant dans le sélecteur. Ça arrive souvent de commencer un sélecteur par un sélecteur d'ID, et il me semble que ce serait plus rapide que de commencer par lui, plutôt que par le tag qui se trouve à la fin (ex: #menu a { }).
  •  
    Oui si .toto est présent sur le même type de tag à savoir "ul" ..inutile d'écrire ul.toto. " .toto" suffit et est apparement plus rapide à interpréter. C'est le cas pour les nouveau parseurs DOM il me semble (firefox). Après savoir si tous la navigateurs se comportent de la même façon sur ce point, je l'ignore.
  •  
    mais par exemple, dans un jQuery, c'est le contraire, semble-t-il. Si la perf de querySelectorAll est la même que celle utilisée pour appliquer les CSS, on doit pouvoir tester avec jsperf.com.
  •  
    "Use class selectors instead of descendant selectors." http://code.google.com/intl/fr/speed/page-speed/docs/rendering.html "It's clear that CSS selectors with a key selector that matches many elements can noticeably slow down web pages." http://www.stevesouders.com/blog/2009/06/18/simplifying-css-selectors/
  •  
    Oui, c'est l'opposé sur jquery, parce que jquery ne peut pas utiliser les index du navigateur efficacement. Ceci dit ça peut changer à l'avenir pour jquery au fur et à mesure qu'ils pourront utiliser les API querySelector et ce genre de choses. Deux règles : - finir de préférence sur le sélecteur #id, ou .classe, éventuellement un nom de balise (mais si possible pas un trop fréquent), pas de sélecteurs plus complexes (attribut seul, pseudo sélecteur, *) - éviter de surspécifier le sélecteur à gauche
  •  
    "finir de préférence sur le sélecteur #id" : si on peut faire ça, autant le mettre directement tout seul, non ?
  •  
    Non, car ton élément #id peut avoir un style différent selon le contexte
  •  
    Sachant que la plupart (tous) des navigateurs lisent les règles CSS de droite à gauche, il vaut mieux éviter de spécifier le tagName. Dans des librairies comme jQuery le problème est un peu différent même si jQuery (sizzle) lit aussi de la droite vers la gauche. Sur les navigateurs qui n'implémentent pas certaines fonctionnalités comme getElementsByClassName (IE6-8), sélectionner $('.maclasse') sera plus long que $('a.maclasse'). Le mieux étant de faire $('.maclasse', noeudDomDeDepart) si on sait a peu près où sont les classes pour éviter de traverser tout le DOM. Autre différence $('#mydiv span');sera plus rapide que $('span'); Alors qu'on pourrait croire que jQuery lit toujours de la droite vers la gauche, il effectuera une exception ici et sélectionnera d'abord $('#mydiv') puis regardera les "span". (http://forum.jquery.com/topic/about-selectors-right-to-left#14737000000472293) Enfin si on travaille sur des noeuds qui ne sont pas encore dans le DOM (pas de append()) , les méthodes employées pour parcourir le noeud seront de simples boucles qui regardent tous les noeuds, pas d'accès à getElementsByClasseName ni getElementbyId. Là dans ce cas il vaut mieux spécifier carrément le tagName + la classe (voire l'ID) ça évite de faire des tours de boucle pour rien. ça reste des cas franchement spécifiques qui ne devraient pas exister, on ne parcourt pas des noeuds html qui ne sont pas dans le DOM dans une application classique et on évite de faire des sélections brutes de $('.classe') si on connait a peu près la structure DOM. Edit: jquery (sizzle) utilise querySelectorAll quand disponible, sinon des méthodes perso combinées avec getElementbyId, className, tagname. http://www.neeraj.name/2010/02/15/how-jquery-selects-elements-using-sizzle.html
  •  
    Comme j'aime bien embêter : Jquery et le natif utilisent les algos aux propriétés presque opposées dans certains cas. Comme le jquery peut renvoyer vers le natif, si vous cherchez trop la bête, vous irez forcément dans le mur sur certains navigateurs. Bref, faites simple. Un "#xxx .yyy" sera à peu près acceptable sur jquery comme sur le natif pour peu qu'on n'utilise pas trop souvent la classe en dehors de l'arbre #xxx. C'est peut être le compromis qui passera le mieux partout (simple pour le navigateur parce qu'il utilise son index pour trouver le .yyy, que remonter au #xxx sera rapide, et qu'il ne remontera pas trop souvent inutilement ; et simple pour jquery parce que grâce à #xxx il peut isoler un arbre DOM restreint sur lequel lancer sa recherche)
  •  
    Comme cette discussion est oriente vers le js: Des selecteurs optimisés c'est bien, un bon design d'application c'est mieux. selection d'une collection - binding d'une fonction sur ces éléments ---> anti-pattern. Event Delegation ----> pattern (lors de l initialisation) selection d'une collection - modification de propriétés css ----> anti-pattern insertion d'html préstylé (classes) ---> Pattern
  •  
    @Vincent Juste pour pinailler : > Le mieux étant de faire $('.maclasse', noeudDomDeDepart) Je dirais le mieux serait même $('noeudDomDeDepart').find('.maclass') Source : http://jsperf.com/jquery-selectors-context/2
  •  
    sans les tirets alors :-) À la base, je trouve ça assez fou que $(XXX).find(YYY) soit tellement plus rapide que $(YYY, XXX). Mais quand on regarde le code on voit qu'il y a beaucoup de "if" dans l'init de jQuery et que les cas les plus courants sont placés en premier. Le cas du contexte est traité à la toute fin, ça explique la différence.
anonymous

Asynchronous and deferred JavaScript execution explained « Peter Beverloo - 6 views

  •  
    Enfin un schéma simple montrant la différence entre async, defer et rien
jpvincent

Outil de mesure des perfs vues par les vrais utilisateurs - 6 views

  •  
    - fait par Steve Souders - le but avoué est d'en faire un standard - calculs basés sur l'API WebTiming, la google toolbar, un plugin firefox, ou simplement JS + un cookie
Éric D.

Bug 15798 - REGRESSION: Safari 3 not caching Flash files - 2 views

  •  
    Trois ans plus tard, ça ne me semble pas corrigé dans Safari 5.0.5 sous Windows. Quelques soit les headers de caching utilisés, Safari fetch à nouveau la source à chaque fois, même plusieurs fois sur la même page. Ca me semble étrange qu'un si gros bug ne soit pas corrigé après tout ce temps, donc peut-être une mauvaise config de ma part.
Oncle Tom

Fastersite: How a web page loads - 5 views

  •  
    Comment le code source d'une page web est parsé et interprété pour comprendre l'effet sur le chargement et la performance.
  •  
    Bon pour comprendre comme une page HTML est effectivement parsée, décodée puis interprétée par un navigateur Web.
1 - 20 of 20
Showing 20 items per page