|
Page : 1 2 Page Précédente | |
Auteur | Sujet : Défi: optimisation d'une fonction de convertion (Bin => Dec) |
![]() Publicité | Posté le 04-01-2005 à 14:38:09 ![]() ![]() |
FlorentG Unité de Masse | Déjà remplace Mid par Mid$ |
LCPROG Bande d'Ours | effectivement! je gagne déjà 15% de temps
|
LCPROG Bande d'Ours | Ok! J'ai étudié ça. Voici ma nouvelle fonction. je n'utilise plus du tout de len() car ma chaine d'entrée est toujours sur 9 caractères.
Message édité par LCPROG le 04-01-2005 à 15:40:43 |
FlorentG Unité de Masse | Tiens pour la comparaison avec "1" :
|
FlorentG Unité de Masse | Aussi, tu pourrais précalculer les puissances, vu qu'elles sont connues et limitées. Met un tableau constant dans ton programme qui contient les puissances déjà calculées, afin que tu n'ai que ça à faire :
|
LCPROG Bande d'Ours | J'ai encore gagné 5 secondes! (on "bench" en était à 50 sec, j'en suis à 45 juste avec cette modif.
|
FlorentG Unité de Masse | Essaye avec le tableau de puissances. Met une variable globale genre PowerArray = Array(1, 2, 4, 8, 16, 32, 64, 128, 256, 512). Comme ça suffit de faire un PowerArray(nCpt), et hop t'as la puissance cash, pas besoin de la recalculer à chaque fois que tu lances la fonction |
LCPROG Bande d'Ours | Vraiment pas bête!! Ca m'avait même pas effleuré l'esprit les constantes... J'ai encore gagné 4 secondes, j'en suis à 41 secondes pour le bench. Je ne sais pas si on peut faire plus rapide maintenant.
|
![]() Publicité | Posté le 04-01-2005 à 16:12:48 ![]() ![]() |
FlorentG Unité de Masse | Ce qu'il faudrait essayer, c'est de profiler la fonction pour voir quelle est la ligne qui prend le plus de temps |
FlorentG Unité de Masse | C'est cette ligne qui bouffe le plus :
|
LCPROG Bande d'Ours | Pour cette fonction ça va aller je pense |
LCPROG Bande d'Ours | Oui c'est ce que je me disais |
dreameddeath | Et avec ça
|
FlorentG Unité de Masse | Ouais, t'as déplié la boucle while Message édité par FlorentG le 04-01-2005 à 16:32:23 |
LCPROG Bande d'Ours | j'essaie de suite... c vrai que c'est pas beau mais je m'en tape pour cette fonction... |
dreameddeath | oui mais bon comme on ne sait pas trop comment fonctionne le compilo (ou plutot le pre-compilo) faut tout lui dire... |
FlorentG Unité de Masse | Mais faudrait remplacer genre
|
LCPROG Bande d'Ours | ça passe à 48 secondes avec ça, c'est pas plus rapide |
LCPROG Bande d'Ours | J'essaie avec le second code... |
LCPROG Bande d'Ours | j'ai des perfs identiques avec
|
dreameddeath | une petite question c'est sous quoi (vba , vb.net??) et quelle version du language (ou d'office) |
FlorentG Unité de Masse | Oui aussi, là j'ai tout fait dans le cas de VB normal, pas VB.NET |
LCPROG Bande d'Ours | c'est sous vb sp6 |
dreameddeath | par contre en essayant sous excel 2000 (vba), avec la boucle dépliée, ça divise le temps d'execution par 2... |
FlorentG Unité de Masse | Oui en VBA c'est directement interpreté, en VB normal y'a quand-même une compilation, donc ça doit jouer... |
charly007 | Au lieu de travailler sur une chaîne, il serait peut-être plus judicieux de travailler sur un nombre, en la convertissant (CInt()).
Message édité par charly007 le 04-01-2005 à 17:32:13 |
dsls | Et un petit :
|
dreameddeath | Bah je ne suis pas sur qu'en rajoutant une conversion en entier on y gagne car finalement on va faire string vers int(binaire) vers int au lieu de faire directement string vers int |
charly007 |
Message édité par charly007 le 04-01-2005 à 17:48:40 |
FlorentG Unité de Masse | Est-ce que le Cint va fonctionner ? J'me demande s'il va pas faire un erreur... |
charly007 |
|
mareek Et de 3 \o/ |
--------------- "I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack |
FlorentG Unité de Masse |
|
charly007 |
Message édité par charly007 le 04-01-2005 à 18:27:54 |
mareek Et de 3 \o/ |
--------------- "I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack |
charly007 |
Message édité par charly007 le 04-01-2005 à 18:52:03 |
mareek Et de 3 \o/ | il a dit que c'était du VB6 --------------- "I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack |
dreameddeath | donc c'est pas du VBA comme le liens que tu donnes dans VB l'integer c'est du 32 bits (soit environ 4 milliard de valeurs possibles) |
![]() Publicité | Posté le ![]() ![]() |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[C] Convertion double -> dec -> hex | Comment faire pour qu'une fonction renvoie un tableau? |
executer un scrpt en fonction de l'ip de l'user | Fonction asm utilisable en C++, linker error... |
[Maple] cherche une fonction qui retourne la taille d'une table | Socket : la fonction connect. |
help: probleme de fonction .h en C | besoin d'aide pour convertion html-->css |
Question à propos d'une fonction du htacces de PHPNuke | |
Plus de sujets relatifs à : Défi: optimisation d'une fonction de convertion (Bin => Dec) |