Quatre & Trois

Web, logiciels, langue française et divers.

Mot-clé - PHP

Fil des billets

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...

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

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.

lundi, 26 mars, 2007, 04:00

++$age;

if (date('Y-d-m') === '2007-03-26') {
    echo 'Denis a maintenant 17 ans !';
}

Tout cela pour vous dire que aujourd’hui je fête mes 17 ans.
Parait-t-il que c’est beaucoup, parait-t-il aussi qu’il ne manque plus qu’une année pour être grand ;)
J’ai l’envie de poster un message par jour sur ce blog, reste à voir si cela sera possible.

Si vous avez des suggestions ou remarques concernant ce blog, n’hésitez pas à me les envoyer :

  1. À l’aide d’un commentaire sur ce billet
  2. Par email à