©
. Document créé le 17 mai 2010 , mis à jour le 16 octobre 2010.Ce n'est pas le tout d'être une femme du monde. Encore faut-il savoir de quel monde il s'agit. Pierre Dac
Accueil du site > Astuces > PHP > Optimiser son code PHP, Variables ou constantes
Il n’est pas rare de voir dans les scripts PHP la fin de ligne traditionnelle (End Of Line) - en général \n - pour insérer un saut de ligne.
Il existe une constante dans PHP : PHP_EOL, qui place automatique la fin de ligne compatible avec l’OS qui héberge votre serveur.
L’utilisation de la constante PHP_EOL est-elle plus performante que l’utilisation d’une variable ?
Voici un petit script pour effectuer cette comparaison :
<?php
//
// Vérification optimisation code
//
define('LOOP', 1000);
function def_array(&$r, $i, $e) {
if(!isset($r[$i])) {
$r[$i] = array('min'=>$e, 'max'=>$e);
}
else {
$r[$i]['min'] = min($r[$i]['min'], $e);
$r[$i]['max'] = max($r[$i]['max'], $e);
}
return($r);
}
$string = '';
$eol = "\n";
define('FDL', PHP_EOL );
$r = array();
for($jj=0; $jj<10; $jj++) {
//////////
$s = microtime(1);
for($ii=0; $ii<LOOP; $ii++) {
$string .= "\n";
}
$r = def_array($r, 'string', microtime(1) - $s);
//////////
$s = microtime(1);
for($ii=0; $ii<LOOP; $ii++) {
$string .= $eol;
}
$r = def_array($r, 'eol', microtime(1) - $s);
//////////
$s = microtime(1);
for($ii=0; $ii<LOOP; $ii++) {
$string .= FDL;
}
$r = def_array($r, 'FDL', microtime(1) - $s);
//////////
$s = microtime(1);
for($ii=0; $ii<LOOP; $ii++) {
$string .= PHP_EOL ;
}
$r = def_array($r, 'PHP_EOL', microtime(1) - $s);
}
echo('resultats:'.PHP_EOL
. '- string : '.$r['string']['min']."\t".$r['string']['max'].PHP_EOL
. '- $eol : '.$r['eol']['min']."\t".$r['eol']['max'].PHP_EOL
. '- FDL : '.$r['FDL']['min']."\t".$r['FDL']['max'].PHP_EOL
. '- PHP_EOL: '.$r['PHP_EOL']['min']."\t".$r['PHP_EOL']['max'].PHP_EOL
);
?>
Si problème de copié/collé, voici ce script compressé :
Le script compare :
Le résultat de ce script :
resultats:
- string : 0.00017189979553223 0.00021195411682129
- $eol : 0.00017690658569336 0.00024199485778809
- FDL : 0.0003199577331543 0.0003669261932373
- PHP_EOL: 0.00017380714416504 0.00036096572875977
Si le résultat est similaire dans les cas 1, 2 et 4, l’usage de la constante déclarée prend deux fois plus de temps machine.
Les forums sont fermés.