begin process at 2012 02 13 02:58:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Optimisation du code

 > BENCHMARK DE BOUCLES

BENCHMARK DE BOUCLES


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Optimisation du code Niveau :Initié Date de création :05/01/2005 Date de mise à jour :05/01/2005 16:06:14 Vu / téléchargé :5 089 / 257

Auteur : Drakkhen

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 janvier 2005 16:06:14 :
Ajout de capture

 Sources du même auteur

AFFECTATION D'UNE VARIABLE LORS DE LA DÉCLARATION
Source avec Zip CHRONOGRAPHE MUSICAL

 Sources de la même categorie

Source avec Zip FONCTIONS PRATIQUE POUR LISTVIEW par Galactus13
Source avec une capture Source .NET (Dotnet) HISTOGRAMME - SUITE - GRAPHIQUE DE BARRES VERTICALES POUR UN... par tchconst
Source .NET (Dotnet) HISTOGRAMME (BIS) BARRES VIA DATATABLE 100 % PERSONNALISÉ par tchconst
Source avec une capture Source .NET (Dotnet) AFFICHER UN HISTOGRAMME PERSONNALISÉ par tchconst
Source avec une capture Source .NET (Dotnet) PROFIL BINAIRE D'UN OBJET par tchconst

Commentaires et avis

Commentaire de Drakkhen le 05/01/2005 16:08:46

J'ai oublié, il était aussi question de boucles imbriquées. Ca change pas grand chose.

Commentaire de Proger le 22/08/2005 18:06:11

J'ai épluché la source, a priori rien a redire, même que tu tiens compte du délai d'appel à l'API queryperformance :D

En revanche il faudrai faire une opération standard dans les boucles. Je craint que les versions optimisé "grillent" les boucles puisqu'elles sont inutile.

Sinon, pour faire plus simple dans le changement de type :
(general)
Option Explicit
DefLng A-Z

(subs)
Dim T, I 'automatiquement en mode Long

et version integer :
(general)
Option Explicit
DefInt A-Z

etc :)

Commentaire de santiago69 le 04/10/2005 13:03:55

salut Proger,
interessant le coup de DefLng et DefInt ; je connaissais pas.
est-ce que ca nous fait gagner en rapidite ?
parcequ'en ce qui me concerne, j'ecrit toujours tout en toute lettre a des fins de lisibilite :
dim NombreDeChiffres as Long
dim TexteAffiche as String
dim ConditionDeSortie as Boolean
etc...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,181 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales