Was sind die Unterschiede zwischen 32-Bit- und 64-Bit-Systemen?
Welche scharfen Unterschiede haben Sie erlebt, wenn Sie beide verwendet haben?
Wäre es in einigen Fällen ein Problem, 32-Bit-Programme auf 64-Bit-Systemen zu verwenden?
Was sind die Unterschiede zwischen 32-Bit- und 64-Bit-Systemen?
Welche scharfen Unterschiede haben Sie erlebt, wenn Sie beide verwendet haben?
Wäre es in einigen Fällen ein Problem, 32-Bit-Programme auf 64-Bit-Systemen zu verwenden?
Antworten:
Hinweis: Diese Antworten gelten für standardmäßige x86-basierte PC-CPUs (Intel und AMD) und Windows (wie normalerweise für Endbenutzer konfiguriert). Andere 32-Bit- oder 64-Bit-Chips, andere Betriebssysteme und andere Betriebssystemkonfigurationen können unterschiedliche Nachteile haben.
Aus technischer Sicht bietet ein 64-Bit-Betriebssystem Folgendes:
Ermöglicht es einzelnen Prozessen, jeweils mehr als 4 GB RAM zu adressieren (in der Praxis begrenzen die meisten, aber nicht alle 32-Bit-Betriebssysteme den gesamten verwendbaren System-RAM auf weniger als 4 GB, nicht nur das Maximum pro Anwendung).
Alle Zeiger benötigen 8 Bytes anstelle von 4 Bytes. Die Auswirkung auf die RAM-Auslastung ist minimal (da Sie wahrscheinlich nicht über eine mit Gigabyte an Zeigern gefüllte Anwendung verfügen). Im schlimmsten theoretischen Fall kann der CPU-Cache jedoch 1/2 so viele Zeiger speichern (machen) es ist effektiv die Hälfte der Größe). Für die meisten Anwendungen ist dies keine große Sache.
Im 64-Bit-Modus gibt es viel mehr Allzweck-CPU-Register. Register sind der schnellste Speicher in Ihrem gesamten System. Im 32-Bit-Modus gibt es nur 8 und im 64-Bit-Modus 16 Universalregister. In wissenschaftlichen Computeranwendungen, die ich geschrieben habe, konnte ich durch erneutes Kompilieren im 64-Bit-Modus eine Leistungssteigerung von bis zu 30% feststellen (meine Anwendung könnte die zusätzlichen Register wirklich nutzen).
Bei den meisten 32-Bit-Betriebssystemen können einzelne Anwendungen nur 2 GB RAM verwenden, selbst wenn 4 GB installiert sind. Dies liegt daran, dass die anderen 2 GB Adressraum für die gemeinsame Nutzung von Daten zwischen Anwendungen und dem Betriebssystem sowie für die Kommunikation mit Treibern reserviert sind. Unter Windows und Linux können Sie diesen Kompromiss auf 3 GB für Anwendungen und 1 GB für gemeinsam genutzte Anwendungen anpassen. Dies kann jedoch bei einigen Anwendungen zu Problemen führen, bei denen die Änderung nicht erwartet wird. Ich vermute auch, dass es eine Grafikkarte lähmen könnte, die 1 GB RAM hat (aber ich bin nicht sicher). Mit einem 64-Bit-Betriebssystem können einzelne 32-Bit-Anwendungen auf 4 GB erweitert werden.
Aus Sicht eines Benutzers:
Die Anwendungsgeschwindigkeit einer 64-Bit-Anwendung unter einem 64-Bit-Betriebssystem ist normalerweise höher als die 32-Bit-Version der Anwendung unter einem 32-Bit-Betriebssystem. Die meisten Benutzer werden diese Geschwindigkeit jedoch nicht bemerken. Die meisten Anwendungen für normale Benutzer nutzen die zusätzlichen Register nicht wirklich aus, oder die Vorteile werden durch größere Zeiger ausgeglichen, die den Cache füllen.
Wenn Sie über Memory-Hog-Anwendungen (wie Bildbearbeitungsprogramme, Videoverarbeitung, wissenschaftliches Rechnen usw.) verfügen (oder mehr als 3 GB RAM erwerben können) und eine 64-Bit-Version der Anwendung erhalten, Die Wahl ist einfach: Verwenden Sie das 64-Bit-Betriebssystem.
Manche Hardware verfügt nicht über 64-Bit-Treiber. Überprüfen Sie Ihr Motherboard, alle Steckkarten und alle USB-Geräte, bevor Sie den Wechsel vornehmen. Beachten Sie, dass in den frühen Tagen von Windows Vista viele Probleme mit Treibern aufgetreten sind. In diesen Tagen sind die Dinge im Allgemeinen besser.
Wenn Sie so viele Anwendungen gleichzeitig ausführen, dass Ihnen der Arbeitsspeicher ausgeht (dies lässt sich normalerweise daran erkennen, dass Ihr Computer langsam wird und die Festplatte knirscht), benötigen Sie ein 64-Bit-Betriebssystem (und genügend RAM).
Sie können 32-Bit-Anwendungen (aber keine Treiber) problemlos unter 64-Bit-Windows ausführen. Die schlechteste Verlangsamung, die ich für eine 32-Bit-Anwendung in 64-Bit-Windows gemessen habe, liegt bei etwa 5% (was bedeutet, dass es höchstens 60 * 1,05 = 65 Sekunden dauerte, bis in 32-Bit-Windows etwas ausgeführt wurde) die gleiche 32-Bit-Anwendung in 64-Bit-Windows).
Was 32-Bit vs. 64-Bit nicht impliziert:
Auf x86-Systemen bezieht sich die 32-Bit-Version im Vergleich zur 64-Bit-Version direkt auf die Größe der Zeiger. Das ist alles.
Es bezieht sich nicht auf die Größe des C- int
Typs. Dies wird von der jeweiligen Compiler-Implementierung bestimmt, und die meisten gängigen Compiler wählen 32-Bit int
auf 64-Bit-Systemen.
Es bezieht sich nicht direkt auf die Größe normaler Nichtzeigerregister. Die Verwendung von 64-Bit-Arithmetikregistern erfordert jedoch, dass die Anwendung und das Betriebssystem auch im 64-Bit-Zeigermodus ausgeführt werden.
Es bezieht sich nicht direkt auf die Größe des physischen Adressbusses. Beispielsweise benötigt ein System mit 64 Bit breiten Cache-Zeilen und maximal 512 GB Speicher nur 33 Bit in seinem Adressbus (dh log2(512*1024**3) - log2(64) = 33
).
Es bezieht sich nicht auf die Größe des physischen Datenbusses: Dies hängt mehr mit den Herstellungskosten (Anzahl der Pins im CPU-Sockel) und den Cache-Zeilengrößen zusammen.
Grundsätzlich können Sie alles in größerem Maßstab tun:
Die beiden großen Arten von 64-Bit-Architekturen sind x64- und IA64-Architekturen. Aber x64 ist bei weitem das beliebteste.
x64 kann sowohl x86-Befehle als auch x64-Befehle ausführen. IA64 führt auch x86-Befehle aus, jedoch keine SSE-Erweiterungen. Auf Itanium ist Hardware für die Ausführung von x86-Anweisungen reserviert. Es ist ein Emulator, aber in Hardware.
Wie @Phil bereits erwähnt hat, können Sie hier einen genaueren Blick darauf werfen, wie es funktioniert .
Die größte Auswirkung, die die Leute im Moment bemerken werden, ist, dass ein 32-Bit-PC nur maximal 4 GB Arbeitsspeicher adressieren kann. Wenn Sie den vom Betriebssystem für andere Zwecke zugewiesenen Speicher entfernen, werden auf Ihrem PC wahrscheinlich nur etwa 3,25 GB verwendbarer Speicher angezeigt. Wechseln Sie zu 64-Bit und diese Grenze verschwindet.
Wenn Sie sich ernsthaft weiterentwickeln, kann dies sehr wichtig sein. Versuchen Sie, mehrere virtuelle Maschinen auszuführen, und Sie haben bald keinen Speicher mehr. Server benötigen mit größerer Wahrscheinlichkeit zusätzlichen Arbeitsspeicher. Daher ist die 64-Bit-Nutzung auf Servern weitaus höher als auf Desktops. Das Moore-Gesetz stellt sicher, dass wir immer mehr Arbeitsspeicher auf den Maschinen haben und Desktops daher irgendwann auch auf 64-Bit als Standard umstellen.
Eine viel detailliertere Beschreibung der Prozessorunterschiede finden Sie in diesem hervorragenden Artikel von ArsTechnica .
Nichts ist kostenlos: Obwohl 64-Bit - Anwendungen können mehr Speicher zugreifen als 32-Bit - Anwendungen, der Nachteil ist , dass sie benötigen mehr Speicher. Alle diese Zeiger, die früher 4 Bytes benötigten, benötigen jetzt 8. Die Standardanforderung in Emacs ist beispielsweise 60% mehr Arbeitsspeicher, wenn sie für eine 64-Bit-Architektur erstellt wurden. Diese zusätzliche Stellfläche beeinträchtigt die Leistung auf allen Ebenen der Speicherhierarchie: Das Laden größerer ausführbarer Dateien von der Festplatte dauert länger, größere Arbeitssets verursachen mehr Paging und größere Objekte bedeuten, dass sie weniger in den Prozessor-Caches passen. Wenn Sie an eine CPU mit einem 16-KByte-L1-Cache denken, kann eine 32-Bit-Anwendung mit 4096 Zeigern arbeiten, bevor sie den L2-Cache verfehlt und erreicht. Eine 64-Bit-Anwendung muss jedoch nach nur 2048 Zeigern auf den L2-Cache zugreifen.
Unter x64 wird dies durch die anderen Architekturverbesserungen, wie z. B. mehr Register, gemildert. Wenn Ihre Anwendung auf PowerPC jedoch 4G nicht verwenden kann, wird sie wahrscheinlich auf "ppc" schneller ausgeführt als auf "ppc64". Sogar auf Intel gibt es Workloads, die auf x86 schneller laufen, und auf x64 laufen nur wenige mehr als 5% schneller als auf x86.
Ein 64-Bit-Betriebssystem kann mehr RAM verwenden. Das war's auch schon in der Praxis. 64-Bit-Versionen von Vista / 7 verwenden ausgefeiltere Sicherheitsfunktionen, um wichtige Komponenten in den Arbeitsspeicher zu verschieben. Dies ist jedoch als solches nicht wirklich erkennbar.
Von ChrisInEdmonton:
Ein 32-Bit-Betriebssystem auf einem ix86-System mit PAE kann bis zu 64 GB RAM adressieren. Ein 64-Bit-Betriebssystem auf x86-64 kann auf bis zu 256 TB virtuellen Adressraum zugreifen, obwohl dies in nachfolgenden Prozessoren auf bis zu 16 EB angehoben werden kann. Beachten Sie, dass einige Betriebssysteme den Adressraum weiter einschränken und die meisten Motherboards zusätzliche Einschränkungen haben.
Ich bin nicht sicher, ob ich alle Ihre Fragen beantworten kann, ohne einen ganzen Aufsatz zu schreiben (es gibt immer Google ...), aber Sie müssen Ihre Apps für 64-Bit nicht anders gestalten. Ich vermute, es wird darauf hingewiesen, dass Sie Dinge beachten müssen, bei denen die Zeigergröße nicht mehr der Größe von Ints entspricht. Und Sie haben eine ganze Menge potenzieller Probleme mit eingebauten Annahmen für bestimmte Datentypen mit einer Länge von vier Bytes, die möglicherweise nicht mehr zutreffen.
Dies kann in Ihrer Anwendung zu Problemen führen - vom Speichern / Laden aus einer Datei über das Durchlaufen von Daten, das Ausrichten von Daten bis hin zu bitweisen Vorgängen mit Daten. Wenn Sie eine vorhandene Codebasis haben, die Sie portieren möchten, oder an beiden arbeiten, müssen Sie wahrscheinlich viele kleine Probleme lösen.
Ich denke, dies ist ein Implementierungsproblem und kein Designproblem. Dh ich denke, das "Design" eines Fotobearbeitungspakets ist unabhängig von der Wortgröße gleich. Wir schreiben Code, der sowohl in der 32-Bit- als auch in der 64-Bit-Version kompiliert werden kann, und das Design unterscheidet sich sicherlich nicht zwischen beiden - es ist dieselbe Codebasis.
Die grundlegende "große Sache" bei 64-Bit ist, dass Sie auf einen viel größeren Speicheradressraum als 32-Bit zugreifen können. Dies bedeutet, dass Sie wirklich mehr als 4 GB Speicher in Ihren Computer einbauen können und tatsächlich einen Unterschied machen müssen.
Ich bin sicher, dass andere Antworten mehr auf Details und Vorteile eingehen werden als ich.
Um den Unterschied dann programmatisch zu erkennen, prüfen Sie einfach die Größe eines Zeigers (z. B. sizeof (void *)). Die Antwort 4 bedeutet 32 Bit und 8 bedeutet, dass Sie in einer 64-Bit-Umgebung arbeiten.
Ein 32-Bit-Prozess verfügt über einen virtuellen Adressraum von 4 GB. Dies könnte für einige Apps zu wenig sein. Eine 64-Bit-App verfügt über einen praktisch unbegrenzten Adressraum (natürlich ist dieser begrenzt, aber Sie werden diesen Grenzwert höchstwahrscheinlich nicht erreichen).
Unter OSX gibt es noch weitere Vorteile. Lesen Sie den folgenden Artikel , warum die Ausführung des Kernels im 64-Bit-Adressraum (unabhängig davon, ob Ihre App auf 64 oder 32 läuft) oder die Ausführung Ihrer App im 64-Bit-Adressraum (während der Kernel noch 32 Bit hat) zu einer viel besseren Leistung führt. Zusammenfassend lässt sich sagen, dass der TLB ("Translation Lookaside Buffer") nicht gelöscht werden muss, wenn Sie vom Kernel auf die Verwendung von Speicherplatz und zurück umschalten (was die Geschwindigkeit erhöht) RAM-Zugriff).
Außerdem haben Sie Leistungsgewinne, wenn Sie mit "long long int" -Variablen arbeiten (64-Bit-Variablen wie uint64_t). Eine 32-Bit-CPU kann zwei 64-Bit-Werte addieren / dividieren / subtrahieren / multiplizieren, jedoch nicht in einem einzigen Hardware-Vorgang. Stattdessen muss diese Operation in zwei (oder mehr) 32-Bit-Operationen aufgeteilt werden. Eine App, die viel mit 64-Bit-Zahlen arbeitet, kann also schneller 64-Bit-Berechnungen direkt in der Hardware durchführen.
Last but not least bietet die x86-64-Architektur mehr Register als die klassischen x86-Architekturen. Das Arbeiten mit Registern ist viel schneller als das Arbeiten mit RAM. Je mehr Register die CPU hat, desto seltener muss sie Registerwerte in RAM und zurück in Register tauschen.
Um herauszufinden, ob Ihre CPU im 64-Bit-Modus ausgeführt werden kann, können Sie verschiedene sysctl-Variablen betrachten. ZB ein Terminal öffnen und tippen
sysctl machdep.cpu.extfeatures
Wenn EM64T aufgeführt ist, unterstützt Ihre CPU den 64-Bit-Adressraum gemäß dem x86-64-Standard. Sie können auch suchen
sysctl hw.optional.x86_64
Wenn 1 (wahr / aktiviert) angezeigt wird, unterstützt Ihre CPU den x86-64-Bit-Modus. Wenn 0 (falsch / deaktiviert) angezeigt wird, wird dies nicht angezeigt. Wenn die Einstellung überhaupt nicht gefunden wird, halten Sie sie für falsch.
Hinweis: Sie können sysctl-Variablen auch aus einer nativen C-App abrufen, ohne das Befehlszeilentool verwenden zu müssen. Sehen
man 3 sysctl
Beachten Sie, dass der Adressraum für mehr als (echten) Speicher verwendet werden kann. Man kann auch große Dateien speicherbilden, was die Leistung bei ungeradzahligen Zugriffsmustern verbessern kann, da das leistungsstärkere und effizientere Caching auf Blockebene auf VM-Ebene einsetzt. Es ist auch sicherer, große Speicherblöcke auf 64-Bit-Basis zuzuweisen, da der Heapmanager geringer ist Es ist wahrscheinlich, dass eine Adressraumfragmentierung auftritt, die es nicht ermöglicht, einen großen Block zuzuweisen.
Einige der in diesem Thread genannten Dinge (wie das Verdoppeln von # -Registern) gelten nur für x86-> x86_64, nicht für 64-Bit im Allgemeinen. Genau wie die Tatsache, dass man unter x86_64 garantiert SSE2, 686 Opcodes und einen billigen Weg hat, PIC zu machen. Bei diesen Funktionen handelt es sich streng genommen nicht um 64-Bit-Funktionen, sondern um das Ausschneiden von Legacy-Funktionen und das Beheben bekannter x86-Einschränkungen
Außerdem wird häufig darauf hingewiesen, dass das Verdoppeln von Registern die Ursache für die Beschleunigung ist, während es wahrscheinlicher ist, dass die standardmäßige Verwendung von SSE2 den Trick macht (Beschleunigen von memcpy und ähnlichen Funktionen). Wenn Sie denselben Satz für x86 aktivieren, ist der Unterschied viel geringer. (*) (***)
Bedenken Sie auch, dass es häufig zu einer anfänglichen Bestrafung kommt, da die durchschnittliche Datenstruktur nur deshalb zunimmt, weil die Größe eines Zeigers größer ist. Dies hat auch Cache-Effekte, ist jedoch deutlicher darin zu sehen, dass der durchschnittliche memcpy () (oder was auch immer das Äquivalent für die Speicherkopie in Ihrer Sprache ist) länger dauern wird. Dies ist nur in der Größenordnung von ein paar Prozent, aber die oben genannten Beschleunigungen sind auch in dieser Größenordnung.
In der Regel ist der Ausrichtungsaufwand bei 64-Bit-Architekturen ebenfalls höher (Aufzeichnungen, die zuvor 32-Bit-Werte enthielten, werden häufig nur zu einer Mischung aus 32-Bit- und 64-Bit-Werten), wodurch Strukturen noch mehr in die Luft gejagt werden.
Insgesamt zeigen meine einfachen Tests, dass sie sich grob aufheben werden, wenn Treiber und Laufzeitbibliotheken vollständig angepasst wurden, was für die durchschnittliche App keinen signifikanten Geschwindigkeitsunterschied ergibt. Einige Apps können jedoch plötzlich schneller (z. B. abhängig von AES) oder langsamer werden (wichtige Datenstruktur wird ständig verschoben / gescannt / durchlaufen und enthält viele Zeiger). Die Tests wurden jedoch unter Windows durchgeführt, sodass die PIC-Optimierung nicht bewertet wurde.
Beachten Sie, dass die meisten JIT-VM-Sprachen (Java, .NET) im Durchschnitt (intern) deutlich mehr Zeiger verwenden als z. B. C ++. Wahrscheinlich steigt ihr Speicherbedarf mehr als bei einem durchschnittlichen Programm, aber ich wage es nicht, dies direkt mit Verlangsamungseffekten gleichzusetzen (da diese wirklich komplex und unkonventionell sind und ohne Messung oft schwer vorherzusagen sind).
Windows 64-Bit verwendet standardmäßig SSE2 für Gleitkommazahlen, wodurch einfache Vorgänge beschleunigt und komplexe Vorgänge (sin, cos usw.) verlangsamt werden.
(*) Eine wenig bekannte Tatsache ist, dass sich die Anzahl der SSE-Register im 64-Bit-Modus ebenfalls verdoppelt
(**) Dr. Dobbs hatte vor ein paar Jahren einen schönen Artikel darüber.
Neben den offensichtlichen Speicherplatzproblemen, die die meisten Leute hier ansprechen, ist es meiner Meinung nach wert, sich den Begriff "Broadword Computing" anzuschauen, über den Knuth (unter anderem) in letzter Zeit gesprochen hat. Durch Bit-Manipulation kann eine Menge Effizienz gewonnen werden, und bitweise Operationen an einem 64-Bit-Wort gehen viel weiter als an einem 32-Bit-Wort. Kurz gesagt, Sie können mehr Operationen in Registern ausführen, ohne auf den Speicher zugreifen zu müssen, und aus Sicht der Leistung ist dies ein ziemlich großer Gewinn.
In Band 4 vor Fascicle 1A finden Sie einige Beispiele für die coolen Tricks, über die ich spreche.
Abgesehen von der Fähigkeit, mehr Speicher zu adressieren, verfügt x86_64 auch über mehr Register, die es dem Compiler ermöglichen, effizienteren Code zu generieren. Die Leistungsverbesserung ist jedoch normalerweise relativ gering.
Die x86_64-Architektur ist abwärtskompatibel mit x86. Es ist möglich, unveränderte 32-Bit-Betriebssysteme auszuführen. Es ist auch möglich, unveränderte 32-Bit-Software unter einem 64-Bit-Betriebssystem auszuführen. Dafür sind jedoch alle üblichen 32-Bit-Bibliotheken erforderlich. Sie müssen möglicherweise separat installiert werden.
Dieser Thread ist schon zu lang, aber ...
Die meisten Antworten konzentrieren sich auf die Tatsache, dass Sie über einen größeren 64-Bit-Adressraum verfügen, sodass Sie mehr Speicher adressieren können. Für etwa 99% aller Anwendungen ist dies völlig irrelevant. Großer Whoop.
Der wahre Grund, warum 64-Bit gut ist , ist nicht, dass die Register größer sind, aber es gibt doppelt so viele! Dies bedeutet, dass der Compiler mehr Ihrer Werte im Register behalten kann, anstatt sie in den Speicher zu verschieben und sie in wenigen Anweisungen später wieder zu laden. Wenn ein optimierender Compiler Ihre Schleifen für Sie abwickelt, kann er sie ungefähr doppelt so oft abwickeln, was die Leistung erheblich verbessern kann.
Außerdem wurden die Konventionen für Unterprogrammaufrufer / Angerufene für 64-Bit definiert, um die meisten übergebenen Parameter in Registern zu halten, anstatt dass der Aufrufer sie auf den Stapel schiebt und der Angerufene sie abspringt.
So wird eine "typische" C / C ++ - Anwendung etwa 10% oder 15% mehr Leistung erzielen, wenn sie nur für 64-Bit neu kompiliert wird. (Angenommen, ein Teil der App ist rechnergebunden. Dies ist natürlich nicht garantiert. Alle Computer warten mit der gleichen Geschwindigkeit. Ihr Kilometerstand kann variieren.)
Neben den bereits genannten Vorteilen gibt es hier noch einige weitere Sicherheitsaspekte:
Ein weiterer Vorteil ist, dass der vmalloc()
im Linux-Kernel zugewiesene virtuelle zusammenhängende Speicher im 64-Bit-Modus größer sein kann.
Mit einer 32-Bit-Maschine können Sie nur 4.294.967.295 Byte Speicher adressieren. Auf einem 64-Bit-Computer stehen 1.84467441 × 10 ^ 19 Byte Arbeitsspeicher zur Verfügung.
64-Bit-Prozessoren berechnen bestimmte Aufgaben (z. B. Fakultäten großer Zahlen) doppelt so schnell wie in 32-Bit-Umgebungen (das angegebene Beispiel ergibt sich aus dem Vergleich zwischen 32-Bit- und 64-Bit-Windows-Rechner; erkennbar an Fakultäten von z. B. 100 000) ). Dies vermittelt einen allgemeinen Eindruck der theoretischen Möglichkeiten von 64-Bit-optimierten Anwendungen.
Während 64-Bit-Architekturen die Arbeit mit großen Datenmengen in Anwendungen wie digitalem Video, wissenschaftlichem Rechnen und großen Datenbanken unbestreitbar erleichtern, gab es erhebliche Debatten darüber, ob sie oder ihre 32-Bit-Kompatibilitätsmodi schneller sind als vergleichbar günstig 32-Bit-Systeme für andere Aufgaben. In der x86-64-Architektur (AMD64) können die meisten 32-Bit-Betriebssysteme und -Anwendungen problemlos auf der 64-Bit-Hardware ausgeführt werden.
Die virtuellen 64-Bit-Java-Maschinen von Sun starten langsamer als die virtuellen 32-Bit-Maschinen, da Sun nur den "Server" -JIT-Compiler (C2) für 64-Bit-Plattformen implementiert hat. [9] Der "Client" -JIT-Compiler (C1), der weniger effizienten Code erzeugt, aber viel schneller kompiliert, ist auf 64-Bit-Plattformen nicht verfügbar.
Es ist zu beachten, dass Geschwindigkeit nicht der einzige Faktor ist, der beim Vergleich von 32-Bit- und 64-Bit-Prozessoren berücksichtigt werden muss. Anwendungen wie Multitasking, Stresstests und Clustering (für Hochleistungs-Computing), HPC, sind bei richtiger Bereitstellung möglicherweise besser für eine 64-Bit-Architektur geeignet. Aus diesem Grund sind 64-Bit-Cluster in großen Unternehmen wie IBM, HP und Microsoft weit verbreitet.
Zitat von Microsoft.com:
In der folgenden Tabelle werden die erhöhten maximalen Ressourcen von Computern, die auf 64-Bit-Versionen von Windows und dem 64-Bit-Intel-Prozessor basieren, mit den vorhandenen 32-Bit-Ressourcenmaxima verglichen.
Kristof und Poshi haben die wichtigsten technischen Unterschiede zwischen 32- und 64-Bit-Betriebssystemen angegeben. Die Benutzererfahrung unterscheidet sich normalerweise stark von der Theorie. Die 64-Bit-Consumer-Versionen von Windows (XP und Vista) weisen große Lücken in der Treiberunterstützung auf. Ich hatte viele Drucker, Scanner und andere externe Geräte, die mit den 64-Bit-Versionen, die mit 32-Bit-Versionen gut funktionieren, überhaupt nicht funktionieren. Dies sind Geräte mit 64-Bit-Treibern, die immer noch nicht funktionieren. An dieser Stelle würde ich empfehlen, dass Sie sich von allen 64-Bit-Konsumenten von Microsoft fernhalten, bis Sie erfahren, wie Windows 7 damit umgeht, und zwar von echten Endbenutzern, nicht nur von denjenigen, die derzeit Zugriff darauf haben. Geben Sie es mindestens 6 Monate und sehen Sie, was die Leute erleben.
Einige Spielprogramme verwenden eine Bit-Board- Darstellung. Schach, Dame und Othello haben beispielsweise eine 8x8-Tafel, dh 64 Felder, so dass mindestens 64 Bits in einem Maschinenwort die Leistung erheblich verbessern.
Ich erinnere mich an ein Schachprogramm, dessen 64-Bit-Version fast doppelt so schnell war wie die 32-Bit-Version.
Der Begriff 32-Bit und 64-Bit bezieht sich auf die Art und Weise, wie ein Computerprozessor (auch als CPU bezeichnet) mit Informationen umgeht. 64-Bit-Versionen von Windows verarbeiten große Mengen an Arbeitsspeicher (RAM) effektiver als 32-Bit-Systeme.
geschwindigkeit kann meiner meinung nach unterschiedlich sein
Ein weiterer Punkt in Bezug auf Microsoft Windows ist, dass es seit vielen Jahren die Win32-API gibt, die für 32-Bit-Betriebssysteme vorgesehen und nicht für das Kompilieren mit 64-Bit optimiert ist. Wenn ich einige DLLs für meine Anwendungen schreibe, kompiliere ich im Allgemeinen in Win32, was nicht die 64-Bit-Version der Dinge ist. Vor Vista gab es meines Erachtens nicht viele erfolgreiche 64-Bit-Versionen von Windows. Meiner Meinung nach verfügt mein neuer Computer über 4 GB RAM, aber ich verwende immer noch 32-Bit-Windows XP Pro, da es sich um ein bekanntes stabiles Betriebssystem handelt. S relativ zu XP64 oder Vista.
Ich denke, Sie möchten vielleicht auch auf die Zeit zurückblicken, als die Umstellung von 16-Bit auf 32-Bit stattfand, um mehr darüber zu erfahren, warum die Umstellung für einige Leute eine große Sache sein könnte. Die geschäftskritischen Anwendungen, die ein Unternehmen möglicherweise auf einem Desktop ausführt, z. B. kleine Buchhaltungspakete, können möglicherweise nicht auf einem 64-Bit-Betriebssystem ausgeführt werden. Daher muss eine ältere Maschine virtuell oder real verfügbar sein.
Das Ändern der Größe einer Adresse kann erhebliche Auswirkungen und Auswirkungen haben.
Für die meisten praktischen Zwecke werden Sie wahrscheinlich keinen Unterschied bemerken.
Sie benötigen eine 64-Bit-CPU (die meisten CPUs in den letzten Jahren), um ein 64-Bit-Betriebssystem zu installieren.
Ein 64-Bit-Betriebssystem bietet einige Vorteile:
In den meisten Szenarien belegen 64-Bit-Programme etwas mehr Speicher. Bei einem PC wird dies jedoch normalerweise nicht bemerkt.