cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013
-
11 avril 2013 à 13:41
NHenry
Messages postés15049Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention25 mars 2023
-
18 avril 2013 à 13:36
Bonjour,
( je crois que les performances dépendent de la plateforme ( windows, zOS, ... ) et du langage ( PL/I, Cobol, REXX, VBNet ) et je n'ai pas d'expérience sur VBNet à part quelques tests de loop ).
Question : dans un bout de code répétitif A je fais un call, et dans un autre bout de code B je fais le même call, y a t il optimisation lors de la compilation ou le call est il négligeable en temps même si je passe 10.000.000 de fois par là.
exemple
code A
instruction 1
instruction 2
Call Proc1
instruction 3
fin code A
code B
instruction 1
instruction 2
Call Proc1
instruction 3
fin code B
Est ce que lors de la compilation le CAll Proc1 est il remplacé par le contenu de Proc1 ( comme cela se fait dans d'autres langages ) ou si je passe dans code A 10.000.000 de fois et dans le code B 10.000.000 de fois , je me payerai le cout du call 20.000.000 de fois.
Mais j'ignore si ce cout est lourd ou pas?
Mon choix dépendra de l'optimisation du compilateur, ce que j'ignore.
Quelqu'un a t il un avis sur ce point et d'une manière générale des liens vers les performances en VBNet ( 2010)
NHenry
Messages postés15049Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention25 mars 2023156 18 avril 2013 à 13:36
Bonjour,
Concernant le coût d'un appel, je ne saurais te dire, ça dépend de tellement de facteur (nombre et taille des paramètres, puissance du processeur/RAM, ...), mais en général, c'est quand même très réduit.
v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
NHenry
Messages postés15049Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention25 mars 2023156 11 avril 2013 à 18:47
Bonjour,
10.000.000 de fois, c'est quand même beaucoup.
Si la performance te préoccupe, évites le framework et passes plutôt en C/C++.
Sinon, les procédures sont appelées, et non dupliquées, de fait, le coût de l'appel est répété le nombre de fois d'appel. Mais en général, si ton code est assez clair, il est possible qu'il y ait quelques optimisations
Ensuite, il faut connaitre d'avantage sur ton projet, car il est peut être possible de trouver une autre implémentation moins gourmande en appel.
v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013 11 avril 2013 à 18:57
Merci de la réponse
10.000.000 de fois, c'est quand même beaucoup.
Il s'agit entre autres de comparer des extracts de databases ( signalétiques, mouvements, historiques, ... ) mais dans le cadre de grandes sociétés ( banques, assurances ), donc je peux assurer que ce n'est pas beaucoup
Sinon, les procédures sont appelées, et non dupliquées, de fait, le coût de l'appel est répété le nombre de fois d'appel
C'est justement le prix d'un call que je voudrais connaitre.
Je vais faire une petite application limitée avec plus ou moins le code que j'ai donné, mettre des mouchards de "time", et voir les résultats.
Mais en général, si ton code est assez clair, il est possible qu'il y ait quelques optimisations
Mon Dieu, j'espère que mon code est clair, mais je n'en suis pas sûr