Pour tester la valeur du début d'une chaîne de caractères, quelle est la solution la plus efficace:
IF Left(strTexte, 5) = "TOTAL" THEN
ou bien
IF strTexte LIKE "TOTAL*" THEN
Pour répondre à cette palpitante question j'ai mesuré quelques dizaines de milliers d'itérations, et le résultat est intéressant: la solution LEFT prend 6 fois plus de temps que la solution Like, et cela en incluant le temps des autres traitements.
Allons plus loin: qu'en est-il lorsqu'on veut tester l'extrémité droite de la chaîne de caractères ?
Après test, RIGHT utilise le même temps que LEFT, par contre Like "*Total" prend 3 fois plus de temps que Like "Total*".
Like reste donc dans tous les cas plus performant, mais d'un facteur 3 au lieu d'un facteur 6.
Si l'on tient compte que les temps mesurés incluaient d'autres opérations (boucle FOR..NEXT, affichage du résultat..) l'impact réel des facteurs mesurés est encore plus important.
IF Left(strTexte, 5) = "TOTAL" THEN
ou bien
IF strTexte LIKE "TOTAL*" THEN
Pour répondre à cette palpitante question j'ai mesuré quelques dizaines de milliers d'itérations, et le résultat est intéressant: la solution LEFT prend 6 fois plus de temps que la solution Like, et cela en incluant le temps des autres traitements.
Allons plus loin: qu'en est-il lorsqu'on veut tester l'extrémité droite de la chaîne de caractères ?
Après test, RIGHT utilise le même temps que LEFT, par contre Like "*Total" prend 3 fois plus de temps que Like "Total*".
Like reste donc dans tous les cas plus performant, mais d'un facteur 3 au lieu d'un facteur 6.
Si l'on tient compte que les temps mesurés incluaient d'autres opérations (boucle FOR..NEXT, affichage du résultat..) l'impact réel des facteurs mesurés est encore plus important.
Commentaires
Enregistrer un commentaire