Différence de rapidité entre vb5 et vb 2005

nours87 Messages postés 33 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 5 octobre 2007 - 26 sept. 2007 à 08:40
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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?

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 sept. 2007 à 09:09
VB5 n'est pas plus en natif, je pencherai surtout pour des maladresses de codage.

Renfield
Admin CodeS-SourceS-MVP Visual Basic
0
nours87 Messages postés 33 Date d'inscription jeudi 19 juillet 2007 Statut Membre Derniè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?

Merci de vos réponses passées et à venir.

++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 sept. 2007 à 12:34
La "migration" est une vaste utopie, c'est une réécriture complète qu'il faut faire.
Le code de calcul est à mettre dans un thread.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous