OVH Cloud OVH Cloud

byte ou integer

7 réponses
Avatar
Barsalou
Bonjour à tous

J'ai pensé accélérer des boucles For-Next en utilisant un indice au format
Byte plutôt que Integer.
En fait l'exécution est au contraire ralentie !

Ce n'est pas bien grave mais tout de même bizarre.
Quelqu'un a-t-il l'explication ?

7 réponses

Avatar
Benoit
> Bonjour à tous

J'ai pensé accélérer des boucles For-Next en utilisant un indice au format
Byte plutôt que Integer.
En fait l'exécution est au contraire ralentie !

Ce n'est pas bien grave mais tout de même bizarre.
Quelqu'un a-t-il l'explication ?



Ceci est tout à fait normal, en effet, integer est le format de base du
processeur.

Benoit
Avatar
Barsalou
Merci

Mais si on passe à un processeur 64 bits ?

Et pourquoi utiliser le format Byte, ce que j'ai vu dans divers exemples ?
Avatar
Zoury
hmmm.. faux..!

En VB 6, le type Long est conserver sur 32 bits ce qui est le de base de la
majorité des processeurs encore utilisé aujourd'hui. un Integer prend 16
bits.

Le type Long est donc préférable et plus rapide pour ce genre d'opération.


--
Cordialement
Yanick Lefebvre
MVP pour Visual Basic

"Benoit" a écrit dans le message de
news:
> Bonjour à tous
>
> J'ai pensé accélérer des boucles For-Next en utilisant un indice au


format
> Byte plutôt que Integer.
> En fait l'exécution est au contraire ralentie !
>
> Ce n'est pas bien grave mais tout de même bizarre.
> Quelqu'un a-t-il l'explication ?

Ceci est tout à fait normal, en effet, integer est le format de base du
processeur.

Benoit




Avatar
Barsalou
Pour information voici le résultat d'un test sur une quadruple boucle (vide)
de 0 à 254, selon le nature de l'indice:

Byte : 42,61 s
Integer : 32,84 s
Long : 31,55 s

Zoury a donc raison (comme toujours) !

Eric
Avatar
Illinger Philippe
Pour rajoutter un peu de sel...

Je dirai :

Les types Bytes, Word (2 Bytes), DWord (2 Words), QWord (2 DWords) (...s'il existe) sont les types de bases des processeurs.

Les autres sont construits à partir de ceux-ci en fonction des langages de prog utilisés.

En C, avec un compilateur 16Bits.....l'integer est codé sur 16bits
avec un compilateur 32Bits....l'integer est codé sur 32bits

En VB, C'est encore autre chose...

Et avec la venue sur 64 bits, la donne changera tres certainement...


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004
Avatar
ng
Salut,

Normal les registres des processeur 32bits sont de taille 32bits=4octets =>
logique ! Il faut donc utiliser le Long (entier 32bits en vb) pour aller
plus vite sur un proc 32bits.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Barsalou wrote:
Bonjour à tous

J'ai pensé accélérer des boucles For-Next en utilisant un indice au
format Byte plutôt que Integer.
En fait l'exécution est au contraire ralentie !

Ce n'est pas bien grave mais tout de même bizarre.
Quelqu'un a-t-il l'explication ?


Avatar
ng
> Ceci est tout à fait normal, en effet, integer est le format de base
du processeur.


D'un processeur 16bits peut être, car pr du 32bits on utilise du Long.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Benoit wrote:
Bonjour à tous

J'ai pensé accélérer des boucles For-Next en utilisant un indice au
format Byte plutôt que Integer.
En fait l'exécution est au contraire ralentie !

Ce n'est pas bien grave mais tout de même bizarre.
Quelqu'un a-t-il l'explication ?



Ceci est tout à fait normal, en effet, integer est le format de base
du processeur.

Benoit