Benchmark PHP N°1 strlen vs isset
Par Hugo Vacher | Catégories : Benchmarks, php | Posté : 18-07-2009
Voila une série de benchmarks php qui commence, parce qu’on se demande souvent quel choix faire quand deux solutions équivalentes s’offrent à nous, il est bon de connaitre les différences de performances entre deux méthodes.
J’ai donc créé un petit script qui me permet de tester relativement facilement les performances de deux méthodes, et je vous livrerai dans ces articles les résultats commentés.
Il existe deux méthodes pour vérifier si une chaine compte au minimum X caractères, on peut utiliser strlen et comparer le résultat à X ou alors vérifier que le Xeme caractère est définit en utilisant isset, voici le résultat du benchmark comparatif.
Résultats :
test_with_isset : Exécution de 1000000 itérations en 2153.5752ms soit 0.0022ms/it. test_with_strlen : Exécution de 1000000 itérations en 3354.2722ms soit 0.0034ms/it. test_with_isset est donc 55.7537% fois plus rapide que test_with_strlen (1200.697ms au totale soit 0.0012ms/it). Exécution total : 6.7465s ====================test_with_isset==================== function func1($texte, $length){ return isset($text{$length}); } ======================================================= ====================test_with_strlen==================== function func2($texte, $length){ return strlen($text) > $length; } ======================================================== ====================ARGUMENTS==================== Array ( [0] => Chaine de test [1] => 12 ) =================================================
Comme on peut le constater, la méthode utilisant isset est plus d’un fois et demi plus rapide (ce qui reste vrai même avec un texte beaucoup plus long). Il vaut donc mieux utiliser notre bon vieux isset pour vérifier si le Xeme caractère existe.
Personnellement je n’utilise pas souvent les accolades pour sortir un caractère, mais voilà une bonne raison pour s’y mettre.


