09-08-2008, 08:52 PM
Benchmark Boucle: foreach() pour un parcours simple, pourquoi pas mais quelqu'un l'a t-il déjà utilisé ou vu utilisé ? Le foreach est intimement lié au tableau, et son range(0, $cpt) fausse le test puisque dans le cas des autres structure il n'y à pas la création d'un tableau de 3 000 000 de cases (m'étonne que ça pète la mémoire :x) ou de 100 000 dans le cas soft.
Benchmark Parcours de tableaux: Son test est faux, j'ai eu le même truc lors de mes tests. La fonction each() avance le pointeur interne du tableaux ce qui fait que lors des 99 999 autre passage la condition du while est à false donc forcément ça va plus vite , il faut penser à ajouter un reset($tableau), de plus en regardant bien on peut voir que l'utilisation du for() -1er cas- est légèrement plus lente que le while du 5éme cas, le foreach étant plus rapide que ces deux là avec une nette amélioration et un while avec les fonction list() et each() serait CENT fois plus rapide que le foreach ? Un peu gros non ?
Et parce ce qu'un test vaut mieux que des milliers de mots, les scripts ainsi que les sources des mes fichiers de test son ici : Benchmark.
Benchmark Parcours de tableaux: Son test est faux, j'ai eu le même truc lors de mes tests. La fonction each() avance le pointeur interne du tableaux ce qui fait que lors des 99 999 autre passage la condition du while est à false donc forcément ça va plus vite , il faut penser à ajouter un reset($tableau), de plus en regardant bien on peut voir que l'utilisation du for() -1er cas- est légèrement plus lente que le while du 5éme cas, le foreach étant plus rapide que ces deux là avec une nette amélioration et un while avec les fonction list() et each() serait CENT fois plus rapide que le foreach ? Un peu gros non ?
Et parce ce qu'un test vaut mieux que des milliers de mots, les scripts ainsi que les sources des mes fichiers de test son ici : Benchmark.