Boucle la plus rapide ?

azerty99_71 Messages postés 55 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 9 décembre 2005 - 9 déc. 2005 à 16:46
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 10 déc. 2005 à 10:09
Bonjour,

Je dois faire un soft qui fait plus ou moins 40000*13700 opérations dans une boucle ...



et je voudrais savoir quelle boucle va le plus vite ...



Est ce que quelqu un pourrait me renseigner ?



Merci d'avance,



Azerty99_71

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 déc. 2005 à 16:53
La boucle qui va la plus vite ? Ca n'a pas vraiment de sens... Tout dépend de ce que tu veux faire !



Si tu travaille sur des collections, la boucle For Each sera plus
rapide, sinon, privilégie une boucle While à une boucle For, mais ce
sera vraiment négligeable vu le nombre d'itération que tu as à faire,
ce sera ton algorithme qu'il faut optimiser, et non utiliser telle ou
telle instruction de boucle !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
9 déc. 2005 à 16:54
La boucle For est la plus lente des boucles.
Après entre While ... End While et Do ... Loop, cela se vaut.
Ce qui est sûr, c'est que c'"ets dans le coeur de la boucle qu'il faut optimisé au maximum.
En effet, le temps de traitement de la boucle proprement dite peut ne représenter que "peanuts" à cote de ton traitement que tu feras 548 millions fois. C'est sur lui qu'il faudra bien bosser l'optimisation.
Si tu veux plus d'infos la dessus, il faudrait nous dire ce que tu comptes faire autant de fois.

CR
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 déc. 2005 à 18:06
While plus rapide que For.....

pas sur, dumoins en VB :

la condition de fin est établie une fois pour toutes (on verifie que i ne dépasse pas le compteur, tout de même, mais plus d'evaluation), en début de boucle, faites le test, utilisez le code :

Private Sub Form_Load()
Dim i As Integer
For i = 0 To ItemCount - 1
'
Next i
End Sub

Public Property Get ItemCount() As Integer
Stop
ItemCount = 10
End Property

pour le While, le test est refait a chaque fois, sachant que ce test peux impliquer des casts, des opérations logiques, des appels a des fonctions, etc, etc

à noter que dans la majorité de langages, comme le C, par exemple, une boucle for n'est qu'une boucle while déguisée. la condition de fin est elle même évaluée a chaque itération, while et for se valent donc, dans ces langages...

mais pas en VB^^


parenthèse fermée, je rejoins ce qui a été dit, l'implémentation du contenu de ta boucle est bien plus important...
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
9 déc. 2005 à 18:10
renfield < J'avais fait des test il y a quelques temps et le For avait été le plus lent. Mais il est vraiq ue je ne faisait qu'une boucle sur un numérique, et donc la condition de sortie du while était simpliste (While i< 100000) par exemple
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
9 déc. 2005 à 22:12
Violent Ken

Salut, pour les performances des commandes en VB, je vous renvoie à
http://www.vbfrance.com/forum.v2.aspx?ID=551560

Il apparait ainsi que For...Next est un mauvais plan.
@+
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 déc. 2005 à 10:09
Je n'y ai pas vu de comparaison directe entre Do...Loop et For...

Amusez-vous !
Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous