|
|||||
|
Menu principal
Effectuez une recherche sur la totalité du site : Si vous souhaitez vous aussi écrire sur Game On Net et partager ainsi votre propre expérience, n'hésitez pas à nous contacter.
|
Développement ::
Programmation ::
Optimisation du code (2)A la recherche de la petite bête. lundi 20 mars 2006 par Prélude Commençons simplement par un choix entre IF et SWITCH. Cela arrive souvent que l’on ait à se poser la question. Alors que choisissez-vous lorsque vous en avez le choix ? Voici les résultats pour une structure de contrôle de type IF : for($i=0;$i<500000;$i++) { if($i==1) { $a = "1 "; }else if($i==2) { $a = "2 "; }else if($i==3) { $a = "3 "; } } Temps moyen : 0.295 s On fait la même chose avec un SWITCH : for($i=0;$i<500000;$i++) { switch($i) { case 1: $a = "1 "; break; case 2: $a = "2 "; break; case 3: $a = "3 "; break; default: $a = "0"; break; } } Temps moyen : 0.290 s Le Switch, dans ce cas, est un petit peu plus rapide, mais de trois fois rien. Le choix peu donc se porter plus sur une méthode de programmation que sur un choix objectif de la vitesse. Mais rajoutons une valeur par défaut à notre test : for($i=0;$i<500000;$i++) { if($i==1) { $a = "1 "; }else if($i==2) { $a = "2 "; }else if($i==3) { $a = "3 "; }else{ $a = "0"; } } Temps moyen : 0.390 s Et la même chose pour le SWITCH : for($i=0;$i<500000;$i++) { switch($i) { case 1: $a = "1 "; break; case 2: $a = "2 "; break; case 3: $a = "3 "; break; default: $a = "0"; break; } } Temps moyen : 0.415 s Dans ce cas de figure, le IF est plus rapide que le SWITCH. Il est vrai que l’instruction default : est exécuté pas mal de fois dans cet exemple. A vous donc de choisir le plus interressant en fonction de vos besoins. Il serait interressant de voir également l’opérateur conditionnel ternaire ? : et sa rapidité, apparente, par rapport à un IF "standard".
Alors qu’en est-il ? for($i=0;$i<500000;$i++) { if($i<10000) { $a = "1 "; }else{ $a = "0"; } } Temps moyen : 0.255 s Voyons maintenant l’opérateur conditionnel ternaire : for($i=0;$i<500000;$i++) { $i<10000 ? $a = "1 ": $a = "0"; } Temps moyen : 0.354 s Il est plus lent ! Et oui, les apparences sont parfois trompeuses. Rubrique
:: Développement
:: Programmation
|
|
|||
|
.:: Magazine réalisé par Prélude :: Partenaires : Gamers'room - PBeM News - AFC - jeux-web.com - PBeM Exchange ::.
|
|||||