Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007
-
17 déc. 2006 à 22:47
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007
-
18 déc. 2006 à 20:41
Salut,
Sorti d'une discussion prise de tête concernant l'utilisation de classes dans d'autres classes sous vb6, j'aimerais avoir l'avis des pros.
Y a-t-il une réelle différence entre ces 2 manières de coder :
1 -
Private MaClasse As MonAutreClasse
Private Class_Initialize()
Set MaClasse = New MonAutreClasse
End Sub
2 -
Private MaClasse As New MonAutreClasse
Perso je suis pour la 2ème manière mais je peux me tromper, c'est pourquoi je demande votre avis, n'ayant rien vu sur le web pouvant abonder dans un sens ou dans l'autre en terme de rapidité ou d'occupation mémoire.
"Pourquoi pas Dim oRegExp As New RegExp ?La variable oRegExp doit être déclarée et instanciée. Il est donc tout à fait possible d'écrire :
'Cette variable vous permet de paramétrer une expression rationnelle
PrivateoRegExp
As NewRegExp
C'est
une écriture tout à fait correcte, mais contestable. Pourquoi ? Tout
simplement parce qu'une variable qui utilise "New" est considérée par
VB comme devant être auto-instanciée (cf. tutoriel sur l'optimisation
avec VB6). De fait, vous vous exposez à des vérifications
supplémentaires qui nuisent aux performances de votre programme (
Attention !Si vous faites un usage modéré des expressions rationnelles, vous ne sentirez pas la différence. Mais si vous êtes curieux de quantifier cette différence de temps d'exécution, tournez-vous vers les API
QueryPerformanceCounter et QueryPerformanceFrequency. Il y a plusieurs
bonnes source sur le sujet sur VBFrance. Je vous propose celle-ci :
http://www.codes-sources.com/code.aspx?ID=39534). "
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 18 déc. 2006 à 20:41
Effectivement, je n'avais pas vu les choses sous cet angle. Etant un peu fainéant ça m'arrangeait pourtant bien de taper une ligne au lieu de 2. Et puis, les classes sous vb6, c'est pas trop ma tasse de thé mais bon, je reprend un vieux prog qu'il faut optimiser et auquel il faut ajouter des fonctions tout en restant vb6.
Ce prog comporte près de 300 classes, sous classes et collections et il va falloir en rajouter . Et tout est codé suivant la méthode 2.
Suivant vos conseils, j'ai donc modifié un certain nombre (un nombre certain ?) de classes utilisant des sous classes et collections conformément à la méthode 1. Puis j'ai fait tester les fonctions utilisant ces classes par mon panel d'utilisateurs testeurs (c'est mieux que les API's).
Leur avis, "c'est mieux qu'avant". Donc, je m'incline, encore quelques tests pour être sûr que ce n'est pas uniquement psychologique ou le fait du hasard et j'adopte.