cs_jmtoulon
Messages postés85Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 3 août 2010
-
30 avril 2007 à 06:39
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
2 mai 2007 à 13:48
Bonjour, sur un processeur de 32bits quand on déclare :
Dim num As ULong
ULong est codé sur 64bits ?
Si oui, sur un cpu de 32bits, la variable aura t-elle un defaut de performance ?
Dans mon cas, par sourci de performance, j'ai un CPU de 32 bits, ne serait-il pas plus pratique de la déclarer comment :
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 avril 2007 à 10:02
Ne pas confondre la profondeur de ton CPU et celle de tes variables.
Sous .Net tout est gérer par le framework. Le Framework est une couche qui s'interface entre ton code et le processeur. Pour etre exact, il s'interface même entre ton code et les couche systèmes de Windows puisque le framework n'est qu'une surcouche des api Windows.
Ta variable ULong est une variable 64 bits dans l'environnement du framework. Elle ne représente absolument rien au niveau processeur. Le framework se chargera de toute façon de faire la conversion si necessaire, lui travaillant systématiquement en 64bits.
A l'heure actuelle même sur des systèmes 64 bits (processeurs + Windows, y compris Win2003) très très peu de logiciels du marché fonctionnent en 64bits.
De même qu'il plus performant tant en rapidité que en ressources de travailler avec des long (32 bits) avec VB6, plutot que avec des bytes ou integer, et le framwork étant une architecture 64 bits, il est fort à parier qu'il sera plus performant de travailler avec des long (64bits) plutot qu'avec des integers.
Cependant les différences de performances ne devraient pas etre visible dans une utilisation normale.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 avril 2007 à 10:51
Je suis d'accord avec toi Brunews, mais cela est vrai lorsqu'on travaille directement sur le processeur.
Hors ici, il faut passer la couche du framework. Que fait-il lui ????
Etant compatible avec les architectures 32 et 64 bits, possède-t-il une double déclaration de tous les types de variables (et donc des fonctions travaillant avec) et fait-il un choix suivant le proco, ou possède-t-il une déclaration générique ménageant la chèvre et le choux entre le 32 et 64 bits.
Personellement je ne connais pas la réponse. Ce que je sais, c'est qu'il travaille de base en 64 bits, et donc l'architecture visible au niveau programmeur est une archi 64bits et à utiliser en tant que telle.
Ce qui fait ensuite en interne pour s'adapter à l'architecture réelle non seulement du proco mais surtout de l'OS, je n'en sais rien. Mais j'imagine que raisonner en 32bits sur .Net peut ammener à des pertes de performances, même si au final tout est retraduit en 32bits pour s'adapter au proco.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?