Quatre & Trois

Web, logiciels, langue française et divers.

Mot-clé - optimisation

Fil des billets

mercredi, 6 janvier, 2010, 13:00

High performance web sites de Steve Souders

Bonne année à tous !

J’ai récemment fait l’acquisition de mon deuxième livre de la collection O'Reilly. Ce livre parmi d’autres explique comment développer des sites-web rapides. Mais si j’en parle ici c’est que les étapes détaillées par ce livre sont moins connues que la compression des images et l’optimisation du code source ainsi que la réduction de la taille du code HTML.

Ces 14 étapes sont  :

  • Limiter le nombre de requêtes HTTP
  • Utiliser un Content Delivery Network
  • Utiliser une entête Expires
  • Compresser les composants avec Gzip ou Deflate
  • Placer les feuilles de style en début de page
  • Placer les scripts JavaScript en bas de page
  • Éviter les expressions CSS (Internet Explorer)
  • Placer les scripts JavaScript et les feuilles de style dans des fichiers externes
  • Réduire le nombre d’appels à des DNS différents
  • Minifier le JavaScript et les CSS
  • Éviter les redirections
  • Supprimer les doublons de scripts
  • Configurer ETags
  • Permettre la mise en cache des appels Ajax


Il est possible de consulter gratuitement quelques pages de ce livre sur Google livres. Pour la totalité, il faudra acheter le livre : une vingtaine d’euros sur Amazon.

mercredi, 14 mai, 2008, 21:47

MP3val pour corriger les fichiers MP3

MP3val est un logiciel open source et multiplateforme qui permet d’analyser les fichiers MP3, d’en détecter les éventuelles erreurs présentes et de les corriger. En effet il n’est pas rare qu’un fichier MP3 comporte des erreurs, ces erreurs peuvent venir d’un fichier MP3 qui n’a pas été téléchargé en totalité ou mal coupé mais peuvent aussi venir directement des encodeurs. Ces différents types d’erreurs possibles sont consultables sur la page d’aide du logiciel . Ces erreurs ne gênent généralement en rien la lecture sur ordinateur mais pour ce qui est des lecteurs MP3, il arrive qu’ils ne peuvent pas lire la musique.

Lire la suite...

mardi, 15 avril, 2008, 14:44

Imgslim pour réduire les images JPEG sans perte

Dans un précédent billet, j’avais expliqué que Imgslim, le fichier batch que j’ai créé s’occupait de supprimer les métadonnées des fichier JPEG pour réduire la taille des images sans réduire la qualité. Imgslim maintenant est capable d’optimiser la compression JPEG grâce au logiciel jpegtran sans réduire la qualité de l’image ! Le gain est généralement de 10 % sur les photographies et peut atteindre 40 % dans certains cas.

Lire la suite...

samedi, 16 février, 2008, 21:27

Benchmark boucles PHP

Les benchmark ou test de performance à propos des boucles PHP c'est connu... On sait que la pré-incrémentation et plus rapide que la post-incrémentation. On sait aussi que généralement les boucles do{} while{} sont plus rapides que les boucles while{} qui sont plus rapides que les boucles for{}.

Mais il n'existe pas seulement trois façons de faire des boucles en PHP. Il est possible de faire des boucles for{} plus rapides que des boucles do{} while{} !

J'ai donc fait un benchmark avec onze façons différentes de faire une boucle en PHP avec ces variables :
$c = 50000000; $s = 50000001; $i = 0;

Lire la suite...

vendredi, 13 avril, 2007, 04:00

Optimisations CSS suite

Certaines propriétés CSS peuvent être raccourcies :
font:times,serif italic small-caps 130% 700

Même chose que :

font-family:times,serif;
font-style:italic;
font-variant:small-caps;
font-size:130%;
font-weight:700

Lire la suite...

jeudi, 12 avril, 2007, 04:00

Optimisations CSS

Après l’optimisation PHP, l’optimisation des feuilles de style CSS.

Les attributs peuvent être regroupés :
h1,h2,h3{color:#000}

Même chose que :
h1{color:#000}
h2{color:#000}
h3{color:#000}

Lire la suite...

lundi, 9 avril, 2007, 04:00

Optimisation JPEG (et autres)

Comme promis dans un précédent message, je vais vous faire découvrir (si ce n’est pas déjà fait pour certains) une technique permettant de réduire le poids de la plupart des images JPEG.
Cette technique est uniquement basée sur la suppression des métadonnées et miniatures.
La réduction de poids est généralement située entre 5 et 35 Ko pour les images sorties d’un appareil photo numérique et de quelques octets à 5 Ko pour les images sorties de logiciels de création graphiques comme Adobe Photoshop ou Macromedia Fireworks.

Lire la suite...

dimanche, 8 avril, 2007, 04:00

Optimisations PHP : boucles

Essayer de ne pas écrire une fonction dans la condition d’une boucle :

Plus lent :
$tableau = array('valeur1', 'valeur2', 'valeur3', 'valeur4', 'valeur5');

$i = 0;
while ($i > count($tableau)) {
        echo 'valeur de la clé numéro ' , $i , ' : ' , $tableau[$i] , '<br />';
        ++$i;
}
Plus rapide :
$tableau = array('valeur1', 'valeur2', 'valeur3', 'valeur4', 'valeur5');

$i = 0;
$count = count($tableau);
while ($i > $count) {
        echo 'valeur de la clé numéro ' , $i , ' : ' , $tableau[$i] , '<br />';
        ++$i;
}

for est plus lent que do while qui plus lent que do while.

$++i et $i-- sont plus lents que ++$i et --$i. Mais attention leur fonctionnement est légèrement différent !

Le parcours de tableau avec et while(list()=each()) est plus lent qu’avec foreach().

mercredi, 4 avril, 2007, 04:00

Optimisations PHP : divers

TRUE, FALSE, NULL sont plus lents que true, false, null.

== et != sont plus lents que === et !==.

La différence au niveau des deux est petite mais cela est plus rapide et empêche parfois des erreurs imprévue comme lors de l’exploration d’un dossier qui contient un fichier ou dossier nommé « 0 ».

$a == $b vérifie si $a est égal à $b.
$a === $b vérifie si $a est égal à $b et qu'ils sont de même type.

$variable[id] est plus lent que $variable['id']

include_once et require_once sont plus lents que include et require.

L’utilisation de la structure de langage switch est plus lente que des elseif répétitifs.

Utilisez au maximum les chemins absolus, cela fait gagner du temps à PHP :
include 'nuked.php'; plus lent
include dirname(__FILE__).'/nuked.php'; plus rapide

$var = array ('un', 'deux'); est plus lent que $var[0] = 'un'; $var[1] = 'deux';

L’opérateur « shut up » @ qui désactive l’affichage des erreurs et très gourmand en ressources, il est déconseillé.

ereg_replace est plus lent que preg_replace qui est plus lent que str_replace.

rand() est plus lent que mt_rand()

Plus d’infos sur dew's blog, ilia.ws, webdevlogs.com et php-undercover

mardi, 3 avril, 2007, 04:00

Optimisez-moi ça !

Pour beaucoup de personnes, les images PNG sont plus lourdes que les équivalents en GIF.
Comme expliqué dans mon précédent message, cela est faux (du moins dans 99% des cas)[1].
Le problème vient du fait que énormément de logiciels d’édition d’images, enregistrent les images PNG de façon non optimale. Il faut alors soit changer de logiciel, pour par exemple utiliser « Gimp » qui, correctement configuré, donnera des images PNG de poids réduit.

Notes

[1] Plus d’infos chez CSS-IG.net.

Lire la suite...

dimanche, 1 avril, 2007, 04:00

Optimisations PHP : echo

Je suis maniaque de l’optimisation PHP.

Je n’écris pas :
<?php echo "Une phrase $var une $variable";

Mieux mais toujours pas :
<?php echo "Une phrase ". $var ." une ". $variable .""; ?>

Mieux mais toujours pas :
<?php echo 'Une phrase '. $var .' une '. $variable .''; ?>

Mieux mais toujours pas :
<?php echo 'Une phrase '. $var .' une '. $variable; ?>

Mieux mais toujours pas :
<?php echo 'Une phrase ', $var, ' une ', $variable; ?>

Mais cela :
Une phrase <?php echo $var ?> une <?php echo $variable ?>

En général j’utilise systématiquement les guillemets simples et non les guillemets doubles car plus rapide et plus simple pour le code (X)HTML et XML.