Voici quelques chronométrages d'instructions en millisecondes sur un E8400 :
Taille de $bigstring = 1 089 535 caractères
Chronométrage de quelques instructions PHP (en ms) :
2.98 | $xxx=md5($bigstring) |
3.99 | $xxx=sha1($bigstring) |
2.82 | $xxx=crc32($bigstring) |
2.94 | $xxx=md5($bigstring) |
3.99 | $xxx=sha1($bigstring) |
2.82 | $xxx=crc32($bigstring) |
3.24 | $xxx=quotemeta($bigstring) |
2.84 | $xxx=convert_uuencode($bigstring) |
70.27 | $xxx=explode(' ', $bigstring) |
0.10 | $xxx=strlen($bigstring) |
0.84 | $xxx=strrev($bigstring) |
1.37 | $xxx=strtoupper($bigstring) |
4.70 | $xxx=strip_tags($bigstring) |
9.97 | $s=0; for($l=1; $l |
7.96 | $xxx=strip_tags($bigstring,'') |
Les performances calamiteuses de l'instruction explode() rappellent que la gestion dynamique de mémoire, ainsi utilisée à haute dose, est coûteuse.
strlen() et strrev() réalisent en revanche de bonnes performances. Il semble d'ailleurs étrange à première vue que strrev() se montre plus rapide que strtoupper(), mais le $LOCALE doit y avoir sa part de responsabilité.