Benchmark de boucles

Description

Suite aux posts sur la source de Proger ( http://www.vbfrance.com/code.aspx?ID=8198 ), je voulais essayer de dissiper la polémique pour les Do/While et For/next, et me fixer par la même occasion. J'ai inclus toutes les boucles que je connaissais.

Conclusion :


Désolé, j'avais pas vu qu'il y avait déjà autant de sources sur ce sujet, sinon j'aurais pas fait cette application. Bon, étant donné que je l'ai faite, je la mets quand même sur le site. Eviter de trop m'en vouloir. :oP
En plus c'est une première pour moi, j'ai mis plein de commentaires, trop cooooool.

Pour ceux qui ne le savent pas : ne vous basez pas sur les performances que vous avez sur l'IDE (interface de développement), parce qu'une fois votre application compilée, vous risquez d'être surpris. Beaucoup de fonctions portent à confusion, on pourrait croire que certaines sont plus rapides, mais c'est uniquement en compilant qu'on peux vraiment tester.
Par exemple sur mon appli, c'est entre les For/Next et Do/While. On pourrait croire que les premières sont plus rapides, mais c'est uniquement valabe sur l'IDE. Après compilation, c'est différent.

D'après ce que j'ai pu voir (inutile de m'incendier si vous n'êtes pas d'accord), les boucles s'exécutant le plus rapidement sont Do/Loop Until et Do/Loop While, en fait celles dont la vérification se trouvent à la fin. Mais ça a un prix : puisque la vérification se trouve en fin de boucle, VB ne la vérifie que lorsqu'il aura exécuté le code précédant ladite vérification. Donc la boucle sera obligatoirement exécutée la première fois, même si la vérification voudrait l'interdire. Dangereux si vous faite pas attention. :o)
Elles sont plus rapides, mais de très peu. Sur 2 milliards d'itération, on gagne moins d'une seconde, donc autant dire que ça revient au même : arrêtez de vous prendre la tête. :oP

PS : ça dépend peut-être aussi du type de processeur, j'ai testé sur un P4 Northwood 3GHz.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.