| |||||
| Dernière réponse | |
|---|---|
| Sujet : Accélerer l'exécution de mon programme en VBA | |
| djinto | Ranger son code ( tout les codes ) :
toutes les déclarations/initialisation de variables en en-têtes de fichiers, elles seront de portées globales, tant qu'une fonction ne nécessites pas de faire autrement. La taille de ce 'bulk' de variables sera égale à la ram nécessaire au lancement de l'application, nominale ( comme ils disent ). les fonctions du dev n'ont aucun paramètres spécifiés en 'input' puisqu'elle utilisent que les variables qui sont dans le 'bulk'. les fonctions 'language' ont des paramètres explicites, écrits, puisqu'elles ne fonctionnent pas sans ces paramètres ( quoi que ... ) Et ça permet quoi ? de n'avoir que i, j, k comme compteur de boucle par exemple, puisque tout va se faire autour de ces 3 compteurs, les exceptions seront rares... de faire qu'une seule déclaration pour un usage ou plusieurs, et cela pour tout ( le maximum d'usage ) de ces variables. ex : avoir un 'conteneur', qui est utilisé plusieurs fois, plutôt que créer / détruire la variable d'un même type ( hé oui ). Sur des traitement importants, 400 000 additions, ou concaténations ( un Blu-ray ... ), sont effectuées sur le même ensemble. C'est inutile d'instancier ou détruire 400 000 fois une variable, puisque le conteneur est le même, et le Type aussi. C'est aller vers le 'traitement par lots', là ou un ordinateur est trés trés fort. Les CPUs ne travaillent qu'en binaire , un fichier Xml, un fichier Excel, un Mp3 ... le Cpu ne les voit pas passer dans ses gravures, ni ses circuits. Le Cpu traite des 'binaires'. rien d'autres. ( c'est le Type le + rapide ) Pour le traitement par lots, et les boucles, sachant que while( condition ) réalise un test avant d'executer les lignes de codes, while( i++ && i < 4 ) c'est égale à : while ( i ++ ){ if( i < 4 ){}{} } pour dire que il y a pas besoin de if dans un programme, puisque qu'une boucle fournit un ( ou plusieurs ) IF aussi. while inclut if ;) programme exclut if ;) un 'process' est executé une fois / ou des milliards de fois... la boucle sera executé, puis arreté en fin de 'lots' ... pour zéro, une, ou des milliards de fois. C'est du 'code design' , et ça mènes vers les 'codes page', il y a rien de trop dans un code page. |
| Vue Rapide de la discussion |
|---|