fdev9
Messages postés20Date d'inscriptionsamedi 25 novembre 2000StatutMembreDernière intervention26 juin 2006
-
27 avril 2006 à 16:27
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 2009
-
1 mai 2006 à 15:38
Bonjour,
J'ai une petite question concernant la structure if/elseif/else.
Ma question est très simple : La différence entre ces deux codages est elle uniquement au niveau de l'affichage (indentation du code, lisibilité) ou ces deux manières de coder ont elles des conséquences à l'execution (performance, etc...) ?
dgouttegattat
Messages postés129Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention30 décembre 20073 27 avril 2006 à 16:35
Bonjour fdev9,
J'ai fait un test rapide avec deux méthodes utilisant les deux façons de coder, et il apparaît que le code MSIL généré pour les deux méthodes est strictement identique. Donc effectivement, la différence entre ces deux manières de coder la même chose n'est qu'une question de présentation du code.
fdev9
Messages postés20Date d'inscriptionsamedi 25 novembre 2000StatutMembreDernière intervention26 juin 2006 27 avril 2006 à 16:45
Merci pour cette réponse rapide dgouttegattat.
Le code MSIL est identique, le compilateur fait donc bien son travail lors de la génération (heuresement)
Bon, bah je vais essayer d'aller convaincre mon ami que le temps de compilation est plus rapide avec un elseif lol
Plus sérieusement, vu qu'il ne s'agit que d'une question de présentation, à moins qu'il existe des conventions qui préconisent l'utilisation du elseif, je crois bien que je vais devoir me faire aux if imbriqués de mon ami :)
bernie666
Messages postés427Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention29 janvier 20081 27 avril 2006 à 23:26
Oui chacun ces preferences :)
Mais je trouve l'utilisation de if imbriqué plus lisible personnelement ...
Apres ... ben soit il faut ce référencer aux "naming convention" ou a la chartre de ton entreprise ... et apres ben c'est plus question de preferences :(
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 28 avril 2006 à 10:01
salut,
puisque vous parlez de performance, le switch ...case ne serait-il pas plus rapide??? Personellement, je trouve ça beaucoup plus lisible que des if.. else imbriqués.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 28 avril 2006 à 10:19
Salut,
Si mes souvenirs sont bons, le switch est plus rapide. Le problème, c'est qu'il ne peut pas remplacer tout le temps un elseif (étant donné que le switch ne marche que sur une variable).
dgouttegattat
Messages postés129Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention30 décembre 20073 28 avril 2006 à 12:03
Salut,
Le code MSIL généré pour une méthode utilisant un switch..case est plus long que pour une méthode faisant exactement la même chose mais avec des else..if (imbriqués ou non).
Toutefois, je ne suis pas sûr que la taille du code MSIL soit le seul critère pour juger de la performance d'un code. Je me souviens vaguement avoir lu dans un livre consacré à l'assembleur quelque chose du genre: "En assembleur, plus le code est long, plus ça va vite..."
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 1 mai 2006 à 15:38
Personnellement, j'utilise la méthode de ton ami car elle me parait plus lisible. La séparation des blocks est claire.
Maintenant, pour l'optimisation... Je suis pas sur que de gagner 1 nanoseconde dans une application .NET soit vraiment d'actualité; à moins de faire du DirectX managed =)