[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Par rapport au 64bits il faudra de toute façon y passer d'ici 30 ans ! J'ai lu dernièrement qu'en 2038 c'est fini soit la norme posix ne permet pas d'aller plus loin pour la représentation d'une date avec 32bits..un peu comme le bug de l'an 2000..
Tiens... à force de toujours redéfinir des types (comme les classes TimeStamp, TimeInterval et autres ...) j'avais jamais fait attention qu'un time_t était en 32 bits !
Coder un timestamp sur 32bits... même sous un OS 32 bits, c'est un peu comme coder une taille de fichier sur 32 bits !![]()
D'ici trente ans, Dieu sait ce à quoi ressemblera l'informatique ... et nous avec !
Par contre, passer au 64 bits juste à cause de la date Posix, c'est plus un argument de commercial que de technicien :-) Rien ne t'empêche de coder la date dans un long long s'il le faut. Tu n'as pas besoin d'avoir un processeur manipulant nativement le 64 bits pour cela ...
Bah l'utilité est dans le stockage binaire d'un fichier selon moi... c'est bien d'avoir un programme stable qui peux tout relire quelque soit le'OS / processeur
Jusqu'a maintenant j'ai rien vu de simple a ce niveau la... selon moi c'est le probleme du C++. Il n'y a pas de variables vraiment définit dans leurs structures.
Je parlais de l'utilité du truc que j'avais codé.
Concernant l'utilité d'avoir des types de taille fixe, je la vois bien dans la conception de mon moteur 3D. D'ailleurs c'est pas pour rien que les API 3D redéfinissent tous les types de base.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Le 64 bits sert dans 2 cas :
- performances lorsqu'on travaille sur de très grands entiers (relativement rare)
- besoin d'adresser plus de 4 Go de RAM à un seul processus.
Je ne parle que de ce que j'ai pratiqué : HP, Sun, Linux(AMD) : se sont de modeles dit ILP32 ou LP64. C'est a dire en 32 bits int, long et pointer 32 bitsEnvoyé par HRS
et en 64 bits long et pointer 64 bits... et donc int 32 bits...
Ceci dit cela n'exclu pas des modeles ILP64 ou autres... mais je n'en ai jamais rencontré...
stdint.h definit des types uint32_t int16_t...Envoyé par Loulou24
Intéressant aussi, il définit des types int_fast16_t, uint_fast8_t qui ont au moins la taille demandé et sont les plus rapides possibles.
Sur x86, il prend des int (32 bits), sur x86_64 il doit prendre des long int (64 bits).
et y a pas un rapport avec le nombre d'instruction que le pross peux gerer ???
avant sur les ancetres des pc en 8bits il n'existait que 256 instructions, maintenant 2^32.
et je suis pas d'accord avec voider, sur une machine 64bits avec compilo 64bits un int devrait valoir 64bits.
Le format des instructions n'a guere de rapport avec la taille des registres d'usage general (et cette taille est la seule maniere sensee de definir ce qu'est un processeur 64 bits). Les processeurs 8 bits avaient des instructions sur plus d'un byte, certains processeurs 32 bits ont toujours des instructions sur un byte.Envoyé par BainE
Si j'ai bonne memoire, les premiers Alpha utilisaient un mode ILP64, mais ils sont passe rapidement a du LP64 qui est la norme en dehors de Windows (qui utilise du LLP64 si j'ai bien suivi).et je suis pas d'accord avec voider, sur une machine 64bits avec compilo 64bits un int devrait valoir 64bits.
Le probleme du ILP64 c'est qu'il n'y a pas de type 32 bits (ou pas de type 16 bits si on fait short de 32 bits) et on utilise donc encore plus de memoire. Car un probleme du 64 bits, c'est qu'en general il faut plus de memoire, et ce probleme etait encore plus cruxial au debut.
les perfs vont augmenter vu qu'a chaque accès mémoire c'est plus 32 mais 64 bits qu'on va récupérer, du coup a chaque cycle d'horloge on récupère le double (dans le cas de la SDRAM) quand on connait l'ordre de vitesse du CPU et de la RAM ca fait une sacré différence...
Tout ca en plus de permettre d'adresser une étendue d'adresse en mémoire gigantesque pour ne pas dire teratesque(il me semble que ca dépasse le To <=> 1 milliards de Go)
La largeur du bus par lequel on accède à la mémoire principale n'a guère de rapport avec la largeur des registres d'usage général. De toute manière les processeurs ne voient plus que les caches...Envoyé par Zitux
En pratique le code 64 bits est plus lent que le code 32 bits. Un des facteurs qui entre en compte est que quasiment tous les objets grandissent et donc il y a une moins bonne utilisation des caches.
10 bits ça fait en gros un facteur mille. Pour adresser un To, il faut 40 bits, si tu considères 64 bits, cela fait 16 millions de To :-)Tout ca en plus de permettre d'adresser une étendue d'adresse en mémoire gigantesque pour ne pas dire teratesque(il me semble que ca dépasse le To <=> 1 milliards de Go)
oui c'est vrai que dans le même temps ils n'ont pas augmenté la taille du cache, d'ou en gros 2 fois moins de place dans le cache ce qui entraine un doublement des caches miss
mouais je sais que trop penser des 64 bits
L'augmentation de l'espace d'adresse est l'unique raison pour laquelle nous fournissons nos soft avec des versions 64 bits. C'est aussi l'unique raison pour laquelle j'en utilise certains dans la version 64 bits.Envoyé par Zitux
Certain programmes faisant des calculs sur de grand entiers (crypto) pourraient tirer parti du 64 bits.
Je me trompe peut être, mais cela fait bien longtemps que les bus de données et tailles des registres correspondant sont en 64bits (cf premier pentium).
Lorsque l'on parle en ce moment de processeurs et d'os 64 bits on parle du bus d'adresses uniquement donc la seul chose qui va changer sera la taille des pointeurs et donc les accès mémoires.
Les perfs de calculs et la gestion des types de bases n'en seront pas changés pour autant. La seul chose qui peut éventuellement changer c les performances des accès mémoires et le cast de pointeur en entier 32bits qui ne marcheras plus !
Mais comme je dis je peux me tromper![]()
Je crois bien que les registres généraux sont encore en 32 bits quand on est en mode 32 bits. En revanche, pour ce qui est des registres non généraux...
En effet, les cryptographes doivent se réjouir de la venue du 64 bits... tout comme les hackers, qui pourront casser certains algorythmes de crypto plus "facilement". (Je mets "facilement" entre guillements car en crypto on a souvent des surprises.)Envoyé par Gandalf
Partager