Warum funktioniert Windows 7 x64 auf meinem PC schneller als eine x86-Edition, obwohl ich meistens x86-Dinge darin verwende? Was ist los mit mir und was vermisse ich?
Die meisten Dinge, die ich benutze, sind x86 (z. B. DAWs, Spiele, Mediaplayer). Eine beträchtliche Anzahl von ihnen ist jedoch x64 (obwohl ihre x86-Gegenstücke gut funktionieren).
Ich habe versucht, dieselben Dinge auf demselben System zu verwenden, fand jedoch immer heraus, dass Windows 7 x64 etwas schneller als x86 funktioniert. Ich bin sehr aufmerksam. Ich bemerke sogar die kleinsten Fensteranimationen.
System : Windows 7 Ultimate x64
CPU : Intel Core 2 Duo E7500 bei 2,93 GHz
RAM : 2 GB x 2 = 4 GB DDR2 bei 332 MHz
Hauptplatine : Intel D945GCNL
Grafik : ATI Radeon HD 4350 bei 1 GB dediziertes
Audio : M-Audio FastTrack Pro
Festplatte : Samsung HD753LJ 733 GB und Samsung HD160JJ 156 GB
Wie Sie sehen können, ist mein System alt.
Antworten:
Dies ist ein Versuch, eine vollständige Antwort zu liefern, indem Bits aus einzelnen bereits vorhandenen Antworten mit einigen zusätzlichen Inhalten zusammengefasst werden. Die Liste versucht, alle Möglichkeiten für einen allgemeinen Fall einzuschließen, auch wenn einige für diesen speziellen Fall ausgeschlossen werden können.
Unterschied im CPU-Befehlssatz
Wie von Joel Coehoorn beschrieben , stehen für einen nativen x64-Code ein größerer Registersatz sowie einige zusätzliche Anweisungen zur Verfügung (z. B. wird garantiert, dass alle x64-CPUs SSE- und SSE2-Anweisungen implementieren). Dies bedeutet, dass native x64-Betriebssysteme und Treiber effizienter sein können.
Bessere RAM-Auslastung
64b kann volle 4 GB verwenden (und noch mehr, wenn verfügbar). Darüber hinaus werden einige interne Betriebssystemgrenzen (ausgelagerter / nicht ausgelagerter Pool, maximale Cache-Größe) mit 64b-Betriebssystemen erhöht . Infolgedessen können sowohl Speicher-Paging als auch Datei-Caching effizienter sein.
Unterschiedliche Festplattenposition
Wenn Sie zwei Betriebssysteme auf zwei Partitionen derselben CD installiert haben, wird eine dieser beiden Partitionen an der Außenkante geschlossen, was im Allgemeinen schneller ist .
Unterschiedlicher Betriebssystemstatus
Wenn Sie zwei Betriebssysteme haben, befindet sich jedes möglicherweise in einem etwas anderen Zustand. Einer von ihnen ist möglicherweise stärker fragmentiert als der andere, einer von ihnen verfügt möglicherweise über eine etwas sauberere Registrierung oder weniger installierte Dienste oder Hintergrundanwendungen als der andere.
Bessere Fahrer
Eine andere Möglichkeit besteht darin, dass x64-Treiber möglicherweise aufgrund einiger grundlegender Architekturunterschiede von besserer Qualität als x86 sind, sondern einfach, weil ihr Anbieter mehr Anstrengungen unternommen hat, um sie zu optimieren und zu optimieren.
64b Adressierung
Ich füge dies nur der Vollständigkeit halber hinzu, da dieser Unterschied für die überwiegende Mehrheit der alltäglichen Anwendungen keine Rolle spielt und definitiv nicht relevant für das ist, was Jasper in seiner Frage beschreibt.
Wenn Sie eine Anwendung haben, die große Datenmengen verarbeitet (z. B. Arbeiten in Photoshop mit großen Bildern), kann die Ausführung der 64b-Version einen großen Unterschied bewirken, vorausgesetzt, Sie haben 4 GB oder mehr RAM installiert.
Was bedeutet "schneller" wirklich?
Hier ist die Liste aus einem Kommentar zu einer anderen Antwort , was genau sind die "schnelleren Dinge", die Jasper sehen kann:
Schwer zu erklären. Windows-Animationen werden von der GPU in Windows 7 ausgeführt und die GPU ist dieselbe. Die Belastung der CPU ist vernachlässigbar. (Ich nehme an, Sie sind mit Aero - Desktop).
Könnten besser abgestimmte Treiber oder Treiber sein, die x64 nutzen ,.
Kann durch eine schnellere Partition (die überhaupt nicht mit dem Betriebssystem zusammenhängt) oder durch eine bessere Cache-Handhabung unter x64-Betriebssystemen verursacht werden.
Verständlich. Die Spieleleistung wird von CPU und GPU bestimmt. Im Falle einer CPU-Begrenzung ist der Begrenzungscode das Spiel selbst, bei dem es sich um denselben x86-Code mit geringer Schnittstelle zum x64-Betriebssystem handelt. Die CPU-Leistung ist daher gleich. Die GPU ist die gleiche. Der Treiber- und Betriebssystem-Overhead in einem gut programmierten Spiel ist gering, daher werden hier wahrscheinlich keine Treiber- oder Betriebssystemunterschiede angezeigt.
quelle
Die Verschiebung von 32 auf 64 Bit ist nicht die einzige Änderung in der x64-Architektur. x64 fügt außerdem weitere CPU-Register und neue CPU-Anweisungen hinzu. Ein Betriebssystem, das diese Vorteile nutzen kann, kann mit derselben Hardware eine bescheidene Leistungssteigerung erzielen. Oh, und 1 GB RAM zurückzubekommen, der früher an Ihre Grafikkarte adressiert war, tut auch nicht weh.
quelle
Warnung: Dies ist eine etwas komplexere Frage, als Sie vielleicht bemerkt haben, und sicherlich mehr als die meisten Antworten dargestellt haben. Um zu versuchen, zumindest ein bisschen mehr von der Geschichte zu erzählen, ist dieser Beitrag ziemlich lang ...
Zunächst die Situation mit dem Videospeicher. Der gesamte Speicher der Grafikkarte ist (zumindest normalerweise) nicht direkt im Adressraum der CPU sichtbar. Normalerweise haben Sie ein "Fenster" von ca. 128-256 Megabyte Videospeicher, das für die CPU sichtbar ist. Die GPU kann diesem Fenster verschiedene Teile ihres Speichers zuordnen, sodass Sie normalerweise von der CPU in den meisten GPU-Speicher schreiben können. Sie müssen der GPU jedoch im Voraus mitteilen, auf was Sie schreiben möchten, bevor Sie dies tun können. Wenn Sie beispielsweise DirectX verwenden und direkt in den Grafikspeicher schreiben möchten, können Sie dies tun. Dazu rufen Sie zunächst
LockRect
auf, damit die GPU den richtigen Speicher in das Fenster (und als) abbildet Sobald Sie fertig sind, rufen Sie anUnlockRect
so kann es nach Bedarf anderen Speicher zuordnen). Zumindest im typischen Fall können Sie die Größe des Videofensters im BIOS-Setup anpassen.Zweitens unterstützen x86-Prozessoren auch im 32-Bit-Modus sogenannte Physical Address Extensions (PAE), mit denen die CPU mehr als 4 Gig adressieren kann. der Erinnerung. Microsoft unterstützt PAE in einigen Windows-Versionen - jedoch nur in der relativ teuren Enterprise Edition von Windows Server. Darüber hinaus muss das Programm speziell für die Verwendung von AWE geschrieben werden. Es gibt nur wenige Programme (z. B. SQL Server Enterprise Edition), die dies jemals getan haben. Fazit: Es ist möglich, aber ziemlich selten.
Was das Lesen von jeweils 64 Bit betrifft: Der letzte Prozessor, der nur 32 Bit gleichzeitig las, war der 486. Beginnend mit dem Pentium hatten alle Prozessoren 64-Bit-Datenbusse. Beachten Sie, dass der Adressbus nicht mit dem Datenbus identisch ist. Durch die Erweiterung auf einen 64-Bit-Datenbus konnte der Prozessor nicht mit mehr Speicher arbeiten (obwohl PAE zufällig im Pentium Pro hinzugefügt wurde war fast zeitgleich mit der Erweiterung auf einen 64-Bit-Datenbus).
Obwohl der Pentium 64 Bit Daten in einem einzigen Taktzyklus lesen konnte, verarbeitete er intern (meistens) Daten 32 Bit gleichzeitig. Der breitere Bus hat in erster Linie dazu beigetragen, den Geschwindigkeitsunterschied zwischen CPU und Hauptspeicher auszugleichen. Die MMX-Anweisungen des Pentium MMX unterstützten die Verarbeitung von Daten in 64-Bit-Blöcken, waren jedoch recht umständlich zu verwenden, und (insbesondere) die meisten Compiler generierten keinen MMX-Code, sodass Sie so ziemlich in Assemblersprache schreiben mussten, um sie zu verwenden . Der Pentium unterstützte auch 64-Bit- (und 80-Bit-) Operationen für Gleitkommazahlen, aber dies wird nur für eine relativ kleine Minderheit der meisten Programme verwendet (und war im Allgemeinen sowieso langsamer als die Arbeit mit ganzen Zahlen).
Das x86-64-Design verfügt über doppelt so viele Allzweckregister wie das 32-Bit-x86-Design, und jedes dieser Register ist 64 Bit breit. Wenn die CPU im 32-Bit-Modus ausgeführt wird, kann jedoch nur die Teilmenge der Register verwendet werden, die auf 32-Bit-CPUs vorhanden waren.
Wenn Sie für einen Moment zum Gleitkomma zurückkehren, wird im 32-Bit-Modus die Gleitkomma-Berechnung mit dem Befehlssatz durchgeführt, der ursprünglich für den Intel 8087-Mathematik-Coprozessor entwickelt wurde. Hierbei wird ein Modell verwendet, das es ziemlich schwierig macht, seine Funktionen voll auszuschöpfen. Intel (und AMD) haben kürzlich "Streaming SIMD Extensions" oder SSE hinzugefügt. Die meisten 64-Bit-Compiler generieren Code, der SSE anstelle von 8087-kompatiblem Gleitkomma verwenden kann / tut. Das "SIMD" in SSE steht für "Einzelbefehl, mehrere Daten". Dies bedeutet, dass ein SSE-Befehl zwei Gleitkommaoperationen für zwei separate Daten ausführen kann . Obwohl dies nicht unbedingt die Geschwindigkeit verdoppelt, verbessert es normalerweise die Geschwindigkeit zumindest ein wenig.
Abschließend möchte ich wahrscheinlich darauf hinweisen, dass ein Teil des Vergleichs im Allgemeinen etwas unfair ist. Wenn Sie ein neues Betriebssystem installieren, ist es fast immer mindestens etwas schneller als ein Betriebssystem, das seit einiger Zeit verwendet wird. Programme speichern Daten in der Registrierung, auf der Festplatte usw. Je mehr Daten Sie hinzufügen, desto mehr Arbeit ist in der Regel erforderlich, um die gewünschten Daten zu einem bestimmten Zeitpunkt zu finden. Während Unternehmen, die "Registry Cleaner" verkaufen und diesen Effekt häufig übertreiben, ist dies bis zu einem gewissen Grad ohnehin der Fall. Wenn Sie also nur Ihre Festplatte neu formatieren und genau dasselbe Betriebssystem neu installieren, können Sie mit einer Geschwindigkeitsverbesserung rechnen - und wenn Sie das alte Betriebssystem lange Zeit installiert und stark genutzt haben , dass eine Verbesserung (alle von selbst) kannziemlich substanziell sein. Zumindest ein Teil der Geschwindigkeitsverbesserung, die Sie sehen, ist möglicherweise unabhängig von einem echten Unterschied zwischen den beiden Betriebssystemen.
Es gibt natürlich noch mehr, aber Sie bekommen die Idee. Es geht nicht so sehr darum, dass ein einzelnes Feature einen großen Unterschied macht, sondern um viele Features, die normalerweise relativ kleine Unterschiede einzeln bewirken, aber viele von ihnen addieren (oder multiplizieren) sogar, um insgesamt einen ziemlich wesentlichen Unterschied zu bewirken.
quelle
Es hat möglicherweise nichts mit 32 vs 64 Bit zu tun.
Aus Ihrem Beitrag geht nicht hervor, was Sie unter "64-Bit ist schneller" verstehen. Sollen wir davon ausgehen, dass Sie 64-Bit-Windows auf einem Computer neu installiert haben, auf dem zuvor 32-Bit-Windows installiert war? In diesem Fall kann das Zurücksetzen der Dateistruktur die Geschwindigkeitsänderungen leicht berücksichtigen. Eine Neuinstallation, insbesondere wenn Sie neu formatiert haben, reagiert häufig schneller als eine ältere Installation, bei der Dateien fragmentiert werden, der Speicherplatz knapp wird, die Registrierung unübersichtlich wird usw.
Dies könnte auch einer der Treiber sein. Beispielsweise könnten die neueren Grafiktreiber vom Hersteller schneller und besser optimiert werden als die älteren x86-Versionen. Oder der Festplattentreiber ist möglicherweise besser.
quelle
Einfach ausgedrückt liegt dies daran, dass Ihr Computer pro Taktzyklus 64 Bit (8 Byte) Daten verarbeiten kann. Ihr Prozessor empfängt Daten in Form von vorab festgelegten Bits, die als Wörter bezeichnet werden. Die Wörter in der x64-Architektur sind doppelt so groß wie die Wörter in der x86-Architektur. Obwohl Ihr Prozessor Daten möglicherweise nicht schneller verarbeitet (Ihr Core 2 liegt bei beiden Installationen bei 2,93 GHz), verarbeitet er Daten jedoch effizienter. Wie in den Kommentaren erwähnt, können Sie damit auch Ihren gesamten RAM adressieren, da Ihr Prozessor in 64-Bit-Wörtern aus Ihrem RAM liest. Aus Wikipedia :
Bei einem 64-Bit-Prozessor multipliziert sich dies nicht mit 2, sondern steigt exponentiell an:
Obwohl dieser Artikel etwas veraltet ist, ist er eine sehr informative Lektüre darüber, wie die 64-Bit-Verarbeitung funktioniert.
Ich möchte darauf hinweisen, dass dies nicht zu einer zweifachen Leistungssteigerung führt, da die tatsächliche Leistung von vielen anderen Variablen abhängt (Festplattengeschwindigkeit, Busgeschwindigkeit, Prozessor-Cache, verfügbarer Speicher usw.). In Windows sollte sich jedoch die Leistung erhöhen, da mehr Betriebssysteme in den Speicher geladen und vom Prozessor effizienter adressiert werden können.
quelle
Ich denke, dass der tiefgreifendste Grund, warum das System mit einem 64-Bit-Betriebssystem schneller ist, darin besteht, dass das 32-Bit-Betriebssystem nicht in der Lage ist, den gesamten RAM im System zu nutzen.
Das 32-Bit-Betriebssystem kann 32-Bit steuern, dh 4 GB physischen Adressraum. Dieser Adressraum umfasst Systemspeicher, Videospeicher, E / A-Geräte usw. Wenn Sie also über 1 GB dedizierten Video-RAM verfügen, können Sie die ersten GB von Ihrem verfügbaren RAM subtrahieren. Dann werden die anderen Geräte wahrscheinlich weitere 200 MB oder so abziehen.
Damit haben Sie nur noch 2,8 GB RAM für Anwendungen. Nicht viel unter Windows 7;)
Das 64-Bit-Betriebssystem hingegen kann Ihren gesamten Arbeitsspeicher nutzen.
quelle
Ich habe 32-Bit und 64-Bit auf zwei separaten identischen Lenovo x100e-Notebooks installiert. 32-Bit hatte 2G-RAM und 64-Bit hatte 4G-RAM und das 32-Bit lief immer noch schneller, flüssiger, reaktionsschneller mit viel weniger Verzögerung als 64-Bit, was verzögert und träge war. Die CPU ist eine 64-Bit-CPU. Dieselben Treiber installiert und Windows-Updates auf beiden durchgeführt. Ich denke, 64-Bit ist für High-End-Maschinen, nicht für Einsteiger, selbst mit x64-CPUs.
quelle