nours87
Messages postés33Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 5 octobre 2007
-
26 sept. 2007 à 08:40
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
26 sept. 2007 à 12:34
Bonjour a tous,
Dans le cadre de mon stage de fin d'étude j'ai eu à m'occuper de la migration d'un logiciel codé en vb5 vers le vb2005.
J'ai du faire cette migration à la main.
Cependant j'ai un soucis. Le code de calcul du logiciel est resté le même d'une version à une autre mais le temps de réponse à beaucoup augmenté.
J'ai exécuté mon programme pas à pas afin de vérifier si il ne faisait pas d'étapes en trop ou qu'il ne faisait pas 2 tours de boucles au lieu d'un mais non il suit exactement le même cheminement.
Auriez vous une idée de ce qui pourrait provoquer une telle différence?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 26 sept. 2007 à 08:51
VB2005 étant un langage interprété et de plus s'executant sur un framework, il sera globalement plus lent qu'un code identique en VB5 qui lui est un langage compilé.
Ceci dit si tu as fait du code VB5 sous VB2005 (copié quasiment à l'identique), il est possible qu'il ne soit autant optimisé que ton programme repris à zéro avec un code pur VB2005.
Mais de toute façon tous les codes interpretés fonctionnant sur un framework (ou machine virtuelle suivant les dénominations) et ce quelque soit le langage seront toujours globalement plus lent qu'un code compilé (dit aussi code natif).
nours87
Messages postés33Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention 5 octobre 2007 26 sept. 2007 à 11:35
Alors je viens de trouver une partie de la solution.
L'élèment génant et c'est la ou Renfield a raison est que je ne suis pas sûr d'avoir bien fait migré l'instruction : DOEvents du vb5.
Je l'avais remplacé par Application.Doevents ce qui a pour conséquence de ralentir considérablement mon code (lorsque j'affiche la progression du calcul à l'aide la progress bar cette instruction permet de remettre à jour l'affichage de la boite de dialogue).
En gros mon calcul passe de 1min30 à 29sec. Contre 20 sec pour l'ancienne version vb5.
Avez vous une meilleur interprétation de cette instruction? Les dernières sec restantes de différence peuvent elles être dues à des soucis d'affichage graphique?