Pourquoi Windows 7 x64 fonctionne-t-il plus rapidement qu'une édition x86 sur mon PC même si j'utilise principalement des éléments x86? Qu'est-ce qui ne va pas chez moi et qu'est-ce qui me manque?
La majorité des choses que j'utilise est x86 (par exemple, les DAW, les jeux, les lecteurs multimédias). Une quantité considérable d'entre eux, cependant, sont x64 (bien que leurs homologues x86 fonctionnent très bien).
J'ai essayé d'utiliser les mêmes choses sur le même système, mais j'ai toujours trouvé que Windows 7 x64 fonctionnait légèrement plus rapidement que x86. Je suis très observateur. Je remarque même les plus petites animations de fenêtre.
Système : Windows 7 Ultimate x64
CPU : Intel Core 2 Duo E7500 @ 2,93 GHz
RAM : 2 Go x 2 = 4 Go DDR2 @ 332 MHz
Carte mère : Intel D945GCNL
Graphiques : ATI Radeon HD 4350 @ 1 Go
Audio dédié : M-Audio FastTrack Pro
Disque dur : Samsung HD753LJ 733 Go et Samsung HD160JJ 156 Go
Comme vous pouvez le voir, mon système est ancien.
Réponses:
Il s'agit d'une tentative de fournir une réponse complète en résumant des bits de réponses individuelles déjà existantes, avec du contenu ajouté. La liste essaie d'inclure toutes les possibilités pour un cas général, même si certaines peuvent être exclues pour ce cas particulier.
Différence du jeu d'instructions CPU
Comme décrit par Joel Coehoorn , pour un code x64 natif, un plus grand ensemble de registres est disponible, ainsi que quelques instructions supplémentaires (par exemple, tous les CPU x64 sont garantis pour implémenter les instructions SSE et SSE2). Cela signifie que le système d'exploitation x64 natif et les pilotes peuvent être plus efficaces.
Meilleure utilisation de la RAM
Le 64b est capable d'utiliser 4 Go (et encore plus lorsqu'il est disponible). De plus, certaines limites internes du système d'exploitation (pool paginé / non paginé, taille maximale du cache) sont augmentées avec le système d'exploitation 64b . Par conséquent, la pagination de la mémoire et la mise en cache des fichiers peuvent être plus efficaces.
Position différente du disque dur
Lorsque vous avez deux systèmes d'exploitation installés sur deux partitions du même disque, l'une de ces deux partitions se ferme sur le bord extérieur, ce qui est généralement plus rapide .
État du système d'exploitation différent
Lorsque vous avez deux systèmes d'exploitation, chacun d'entre eux peut être dans un état légèrement différent. L'un d'eux peut être plus fragmenté que l'autre, l'un peut avoir un registre un peu plus propre ou des services ou des applications d'arrière-plan moins installés que l'autre.
De meilleurs conducteurs
Une autre possibilité est que les pilotes x64 pourraient être de meilleure qualité que x86 non pas en raison de certaines différences d'architecture fondamentales, mais simplement parce que leur fournisseur a pris plus d'efforts pour les optimiser et les affiner.
Adressage 64b
J'ajoute cela uniquement par souci d'exhaustivité, car pour la grande majorité des applications quotidiennes, cette différence ne joue aucun rôle, et elle n'est certainement pas pertinente pour ce que Jasper décrit dans sa question.
Si vous avez une application qui traite d'énormes quantités de données (par exemple, travailler dans Photoshop avec des images énormes), l'exécution de la version 64b peut faire une énorme différence à condition que vous ayez 4 Go ou plus de RAM installée.
Que signifie vraiment "plus vite"?
Voici la liste d' un commentaire sur une autre réponse , quelles sont exactement les "choses plus rapides" que Jasper peut voir:
Difficile à expliquer. L'animation Windows est effectuée par le GPU dans Windows 7 et le GPU est le même. La charge sur le processeur est négligeable. (Je suppose que vous êtes utilisez bureau Aero).
Pourrait être des pilotes mieux réglés ou des pilotes profitant de x64,.
Cela pourrait être dû à une partition plus rapide (sans aucun lien avec le système d'exploitation) ou à une meilleure gestion du cache dans le système d'exploitation x64.
Compréhensible. Les performances des jeux sont déterminées par le CPU et le GPU. En cas de limitation du processeur, le code limitant est le jeu lui-même, qui est le même code x86 avec peu d'interface avec le système d'exploitation x64. Les performances du CPU sont donc les mêmes. Le GPU est le même. Les frais généraux du pilote et du système d'exploitation dans un jeu bien programmé sont faibles, par conséquent, aucune différence de pilote ou de système d'exploitation ne devrait apparaître ici.
la source
Le passage de 32 à 64 bits n'est pas le seul changement dans l'architecture x64. x64 ajoute également plus de registres cpu et de nouvelles instructions cpu. Un système d'exploitation qui sait en tirer parti peut obtenir une augmentation modeste des performances du même matériel. Oh, et récupérer 1 Go de RAM qui était auparavant adressé à votre carte vidéo ne fait pas de mal non plus.
la source
Attention: c'est une question un peu plus complexe que vous ne l'avez peut-être imaginé et certainement plus que la plupart des réponses ne l'ont dépeint. Pour essayer de couvrir au moins un peu plus l'histoire, ce post est assez long ...
Tout d'abord, la situation avec la mémoire vidéo. L'intégralité de la mémoire de la carte vidéo n'est pas (au moins normalement) directement visible dans l'espace d'adressage du CPU. Vous disposez généralement d'une «fenêtre» d'environ 128 à 256 mégaoctets de mémoire vidéo visible par le processeur. Le GPU peut mapper différentes parties de sa mémoire sur cette fenêtre, vous pouvez donc généralement écrire sur la plupart de la mémoire du GPU à partir du CPU, mais vous devez indiquer au GPU à l'avance sur quoi vous allez écrire avant de le faire. Par exemple, lorsque vous utilisez DirectX et que vous souhaitez écrire directement dans la mémoire graphique, vous pouvez le faire - mais pour ce faire, vous commencez par appeler
LockRect
pour que le GPU mappe la bonne mémoire dans la fenêtre (et comme dès que vous avez terminé, vous appelezUnlockRect
afin qu'il puisse mapper d'autres mémoires selon les besoins). Au moins dans le cas typique, vous pouvez ajuster la taille de la fenêtre vidéo dans la configuration du BIOS.Deuxièmement, même en mode 32 bits, les processeurs x86 prennent en charge ce qu'on appelle les extensions d'adresse physique (PAE), ce qui permet au processeur d'adresser plus de 4 Go. de la mémoire. Microsoft prend en charge PAE dans certaines versions de Windows - mais uniquement l'édition Enterprise relativement coûteuse de Windows Server. De plus, le programme doit être écrit spécifiquement pour utiliser AWE. Seuls quelques programmes (par exemple, SQL Server Enterprise Edition) l'ont déjà fait. Conclusion: c'est possible, mais assez rare.
En ce qui concerne la lecture de 64 bits à la fois: le dernier processeur à lire des données à seulement 32 bits à la fois était le 486. À partir du Pentium, tous les processeurs ont eu des bus de données à 64 bits. Notez que le bus d' adresse n'est pas le même que le bus de données, donc l'extension à un bus de données 64 bits n'a pas permis au processeur de travailler avec plus de mémoire (bien que, comme cela arrive, PAE a été ajouté dans le Pentium Pro, il était presque simultané à l'extension à un bus de données 64 bits).
Même si le Pentium pouvait lire 64 bits de données en un seul cycle d'horloge, en interne, il traitait (principalement) des données 32 bits à la fois. Le bus plus large a principalement aidé à compenser la différence de vitesse entre le processeur et la mémoire principale. Les instructions MMX du Pentium MMX prenaient en charge le traitement des données en blocs 64 bits, mais leur utilisation était plutôt maladroite et (en particulier) la plupart des compilateurs ne généraient pas de code MMX, vous avez donc dû écrire en langage assembleur pour l'utiliser. . Le Pentium a également pris en charge les opérations 64 bits (et 80 bits) pour les nombres à virgule flottante, mais cela n'est utilisé que pour une assez petite minorité de la plupart des programmes (et était généralement plus lent que de travailler avec des entiers de toute façon).
La conception x86-64 possède deux fois plus de registres à usage général que la conception x86 32 bits, et chacun de ces registres a une largeur de 64 bits. Toutefois, lorsque le processeur fonctionne en mode 32 bits, seul le sous-ensemble des registres qui existaient sur les processeurs 32 bits est utilisable.
Pour revenir un instant à la virgule flottante, en mode 32 bits, les calculs en virgule flottante sont effectués à l'aide du jeu d'instructions initialement conçu pour le coprocesseur mathématique Intel 8087. Cela utilise un modèle qui rend assez difficile l'utilisation complète de ses capacités. Intel (et AMD) ont récemment ajouté «Streaming SIMD Extensions», ou SSE. La plupart des compilateurs 64 bits génèrent du code qui peut / utilise SSE au lieu de virgule flottante compatible 8087. Le "SIMD" dans SSE signifie "instruction unique, données multiples". Ce que cela signifie est que l' une instruction SSE peut effectuer deux opérations en virgule flottante sur deux morceaux de données. Bien que cela ne double pas nécessairement la vitesse, cela améliore généralement la vitesse au moins un peu.
Enfin, je devrais probablement souligner qu'il y a une partie de la comparaison qui est généralement un peu injuste. Lorsque vous installez un nouveau système d'exploitation, il est presque toujours au moins un peu plus rapide qu'un système d'exploitation utilisé depuis un certain temps. Les programmes stockent les données dans le registre, sur le disque dur, etc. Plus vous ajoutez de données, plus il faut travailler pour trouver les données souhaitées à un moment donné. Alors que les entreprises qui vendent des «nettoyeurs de registre» et exagèrent fréquemment cet effet, c'est vrai dans une certaine mesure de toute façon. En tant que tel, si tout ce que vous avez fait a été de reformater votre disque dur et de réinstaller exactement le même système d'exploitation, vous pouvez vous attendre à voir une certaine amélioration de la vitesse - et si vous avez fait installer et utiliser l'ancien système d'exploitation pendant longtemps , cette amélioration (par elle-même) peutêtre assez substantiel. Au moins une partie de l'amélioration de la vitesse que vous voyez peut être indépendante de toute différence réelle entre les deux systèmes d'exploitation.
Il y a plus que cela, bien sûr, mais vous commencez à avoir l'idée. Il ne s'agit pas tant d'une seule fonctionnalité qui fait une énorme différence, que de nombreuses fonctionnalités qui font généralement des différences assez petites individuellement, mais beaucoup d'entre elles s'ajoutent (ou même se multiplient) ensemble pour faire une différence assez substantielle dans l'ensemble.
la source
Cela n'a peut-être rien à voir avec 32 vs 64 bits.
Il n'est pas clair dans votre message ce que vous entendez par «64 bits est plus rapide». Doit-on en déduire que vous avez réinstallé Windows 64 bits sur une machine sur laquelle vous aviez précédemment un Windows 32 bits? Si c'est le cas, la «réinitialisation» de la structure du fichier peut facilement expliquer les changements de vitesse. Une nouvelle installation, en particulier si vous avez reformaté, est souvent plus réactive qu'une installation plus ancienne où les fichiers sont fragmentés, l'espace disque est faible, le registre est encombré, etc.
Il pourrait également être l'un des pilotes ... par exemple, les nouveaux pilotes vidéo pourraient être plus rapides et mieux optimisés par le fournisseur que les anciennes versions x86. Ou le pilote du disque dur pourrait être meilleur.
la source
Pour le dire simplement, c'est parce que votre ordinateur peut traiter 64 bits (8 octets) de données par cycle d'horloge. Votre processeur reçoit des données sous forme de bits préarrangés appelés mots. Les mots dans l'architecture x64 sont deux fois plus gros que les mots dans l'architecture x86. Bien que votre processeur ne traite pas les données plus rapidement (votre Core 2 est à 2,93 Ghz sur les deux installations), il traite cependant les données plus efficacement. En outre, comme mentionné dans les commentaires, cela vous permettra d'adresser toute votre RAM car votre processeur lit à partir de votre RAM en mots 64 bits. De Wikipédia :
Pour un processeur 64 bits, cela ne multiplie pas par 2, il augmente de façon exponentielle:
Cet article , bien qu'un peu daté, est une lecture très informative sur le fonctionnement du traitement 64 bits.
Je tiens à souligner que cela ne se traduit pas réellement par une augmentation des performances 2x, car les performances réelles dépendent de nombreuses autres variables (vitesse du disque, vitesse du bus, cache du processeur, mémoire disponible, etc.). Mais vous devriez voir une augmentation des performances dans Windows car une plus grande partie du système d'exploitation peut être chargée en mémoire et traitée par le processeur plus efficacement.
la source
Je pense que la raison la plus profonde pour laquelle le système utilise plus rapidement un système d'exploitation 64 bits est que le système d'exploitation 32 bits n'est pas capable d'utiliser toute la RAM du système.
L'OS 32 bits pourra contrôler 32 bits, soit 4 Go d'espace d'adressage physique. Cet espace d'adressage comprend la mémoire système, la mémoire vidéo, les périphériques IO, etc. Ainsi, lorsque vous disposez d'un RAM vidéo dédié de 1 Go, vous pouvez soustraire le premier Go de votre RAM disponible. Ensuite, les autres appareils soustrairont probablement 200 Mo ou plus.
Cela vous laisse avec seulement 2,8 Go de RAM pour les applications. Pas beaucoup sur Windows 7;)
Le système d'exploitation 64 bits, d'autre part, est capable d'utiliser toute votre RAM.
la source
J'ai installé 32 bits et 64 bits sur deux ordinateurs portables Lenovo x100e identiques distincts. 32 bits avaient un ram 2G et 64 bits avaient un ram 4G et le 32 bits fonctionnait toujours plus vite, plus lisse, plus réactif avec beaucoup moins de retard que le 64 bits qui était retardé et lent. Le processeur est un processeur 64 bits. Mêmes pilotes installés et mises à jour Windows effectuées sur les deux. Je pense que 64 bits est destiné aux machines haut de gamme, pas au niveau d'entrée, même avec les processeurs x64.
la source