Le bon code est plus important
Donc, si vous pensez que ce genre de choses est important, gardez à l'esprit que c'est une constante dans Big O. En d'autres termes, les appels à la base de données, les activités On2 ou pire sont les seules choses qui comptent. Dans la plupart des cas, il est inutile de se préoccuper de ces commandes de bas niveau.
Cela ne veut pas dire que les constantes doivent être ignorées ; par exemple, j'ai remanié un code qui rassemblait des images car il le faisait une par une, chacune prenant 1 seconde, et cela a réduit la durée de 12 secondes à 1 seconde (en utilisant plusieurs requêtes curl). L'idée est que les commandes intégrées sont de bas niveau et que la structure du code est plus cruciale.
Le code ci-dessous effectue 10 millions d'appels de niveau inférieur et, comme vous pouvez le constater, les "économies" sont négligeables.
function prof_flag($str)
{
global $prof_timing, $prof_names;
$prof_timing[] = microtime(true);
$prof_names[] = $str;
}
function prof_print()
{
global $prof_timing, $prof_names;
$size = count($prof_timing);
for($i=0;$i<$size - 1; $i++)
{
echo "<b>{$prof_names[$i]}</b><br>";
echo sprintf(" %f<br>", $prof_timing[$i+1]-$prof_timing[$i]);
}
echo "<b>{$prof_names[$size-1]}</b><br>";
}
$l = 10000000;
$str = "the quick brown fox";
echo "<h3>Ran " .number_format($l,2) ." calls per command </h3>";
prof_flag("Start: stripos");
for ($i = 0; $i<$l; $i++)
if (stripos($str, 'fox') !== false) {}
prof_flag("Start: preg_match");
for ($i = 0; $i<$l; $i++)
if (preg_match('#fox#i', $str) === 1) {}
prof_flag("Finished");
prof_print();
La seule valeur de ce code est qu'il montre une façon cool d'enregistrer les temps d'exécution des choses lol
Ran 10,000,000.00 calls per command
Start: stripos
2.217225
Start: preg_match
3.788667
Start: ==
0.511315
Start: ucwords lol
2.112984
Finished