Frage 32-Bit- und 64-Bit-Systeme


Was sind die Unterschiede zwischen 32-Bit- und 64-Bit-Systemen?

Wenn Sie beide benutzt haben, welche Art von scharfen Unterschieden haben Sie erlebt?

Wäre es in einigen Fällen problematisch, 32-Bit-Programme auf 64-Bit-Systemen zu verwenden?


219
2017-10-17 11:14


Ursprung


Hier gibt es viele Verwechslungen, und anderswo, wo im Web zwischen physikalischer Adressierung (Zugriff auf RAM), PEA diese Auswirkungen hat, wirkt sich Motherboard aus, und logische Adressierung (virtueller Speicher pro Prozess). Bei einem 32-Bit-Betriebssystem ist der virtuelle Speicher auf 4 GB begrenzt, abzüglich dessen, was der Kernel reserviert. Es ist unabhängig vom Arbeitsspeicher, Sie könnten 0.1MB oder 8GB RAM haben und Sie hätten genau 4GB virtuellen Speicher (aber einige sind vom Kernel reserviert). PEA kann verwendet werden, um mehr RAM zu haben, ist aber keine perfekte Antwort, da der Kernel NICHT auf alles zugreifen kann. - ctrl-alt-delor


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 Kompromisse eingehen.

Aus technischer Sicht bietet ein 64-Bit-Betriebssystem:

  • Ermöglicht einzelnen Prozessen, jeweils mehr als 4 GB RAM zu adressieren (in der Praxis begrenzen die meisten, jedoch nicht alle 32-Bit-Betriebssysteme den gesamten nutzbaren System-RAM auf weniger als 4 GB, nicht nur das maximale Anwendungsvolumen pro Anwendung).

  • Alle Zeiger nehmen 8 Bytes statt 4 Bytes. Die Auswirkung auf die RAM-Nutzung ist minimal (weil Sie wahrscheinlich keine Anwendung mit Gigabyte von Zeigern gefüllt haben), aber im schlimmsten theoretischen Fall kann dies dazu führen, dass der CPU-Cache in der Lage ist, 1/2 so viele Zeiger zu halten es ist effektiv 1/2 der Größe). Für die meisten Anwendungen ist das keine große Sache.

  • Es gibt viel mehr allgemeine CPU-Register im 64-Bit-Modus. Register sind der schnellste Speicher in Ihrem gesamten System. Es gibt nur 8 im 32-Bit-Modus und 16 Allzweckregister im 64-Bit-Modus. In wissenschaftlichen Computing-Anwendungen, die ich geschrieben habe, habe ich bis zu 30% Leistungssteigerung durch Neukompilieren im 64-Bit-Modus gesehen (meine Anwendung könnte wirklich die zusätzlichen Register verwenden).

  • 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, mit dem Betriebssystem und für die Kommunikation mit Treibern reserviert ist. Mit 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, die die Änderung nicht erwarten, zu Problemen führen. Ich vermute auch, dass es eine Grafikkarte lähmen könnte, die 1 GB RAM hat (aber ich bin mir nicht sicher). Ein 64-Bit-Betriebssystem kann einzelne 32-Bit-Anwendungen näher an die vollen 4 GB bringen, mit denen gespielt werden kann.

Aus der Sicht eines Benutzers:

  • Die Anwendungsgeschwindigkeit ist normalerweise bei einer 64-Bit-Anwendung in einem 64-Bit-Betriebssystem schneller als bei der 32-Bit-Version der Anwendung bei einem 32-Bit-Betriebssystem, aber die meisten Benutzer sehen diese Beschleunigung nicht. 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 Speicheranwendungen haben (wie Fotobearbeitung, Videoverarbeitung, wissenschaftliche Berechnungen usw.), wenn Sie mehr als 3 GB RAM haben (oder kaufen können) und eine 64-Bit-Version der Anwendung erhalten können, Die Auswahl ist einfach: Verwenden Sie das 64-Bit-Betriebssystem.

  • Einige Hardware verfügt nicht über 64-Bit-Treiber. Überprüfen Sie Ihr Motherboard, alle Steckkarten und alle USB-Geräte, bevor Sie den Switch aktivieren. Beachten Sie, dass es in den frühen Tagen von Windows Vista viele Probleme mit Treibern gab. Heutzutage sind die Dinge im Allgemeinen besser.

  • Wenn Sie so viele Anwendungen gleichzeitig ausführen, dass Ihnen der Arbeitsspeicher knapp wird (normalerweise können Sie dies feststellen, weil Ihr Computer langsam langsamer wird und Sie hören, wie das Festplattenlaufwerk funktioniert), sollten Sie ein 64-Bit-Betriebssystem verwenden (und genügend RAM).

  • Sie können 32-Bit-Anwendungen (aber keine Treiber) in 64-Bit-Windows ohne Probleme ausführen. Die schlechteste Verlangsamung, die ich für eine 32-Bit-Anwendung in 64-Bit-Windows gemessen habe, ist etwa 5% (dh, wenn es 60 Sekunden dauerte, um etwas in 32-Bit-Windows zu machen, dauerte es höchstens 60 * 1,05 = 65 Sekunden dieselbe 32-Bit-Anwendung in 64-Bit-Windows).

Was 32-Bit im Vergleich zu 64-Bit tut nicht implizieren:

Auf x86-Systemen 32-Bit und 64-Bit direkt bezieht sich auf die Größe von Zeigern. Das ist alles.

  • Es bezieht sich nicht auf die Größe des C int Art. Das ist durch die bestimmte Compiler-Implementierung entschieden, und die meisten populären Compiler wählen 32-Bit int auf 64-Bit-Systemen.

  • Es tut nicht direkt beziehen sich auf die Größe von normalen Nicht-Zeiger-Registern. Die Verwendung von 64-Bit-Arithmetik-Registern erfordert jedoch, dass die Anwendung und das Betriebssystem auch im 64-Bit-Zeigermodus ausgeführt werden.

  • Es tut nicht direkt beziehen sich auf die Größe des physikalischen Adress-Busses. Zum Beispiel benötigt ein System mit 64 Bit breiten Cachezeilen und einem Maximum von 512 Gigabit Speicher nur 33 Bit in seinem Adreßbus (d. H. log2(512*1024**3) - log2(64) = 33).

  • Es bezieht sich nicht auf die Größe des physischen Datenbusses: das hängt mehr mit den Herstellungskosten (Anzahl der Pins im CPU-Sockel) und den Cache-Zeilengrößen zusammen.


262
2017-10-17 13:11



Sehr gute Antwort. Vor allem, weil Sie festgestellt haben, dass es nicht wirklich ein 4-GB-RAM-Limit gibt, sondern die Speicherbenutzungsgrenze. Nur zu Ihrer Information, ich denke, Sie sollten sich diesen Link ansehen: unawave.de/windows-7-tipps/32-bit-ram-barrier.html?lang=EN - Breakthrough
Sie sind Anwendungen, die nicht in einem 64-Bit-Windows funktionieren: 16-Bit-Anwendungen / solche, die 32-Bit- oder unsignierte Kernel-Modus-Treiber verwenden. Das ist viel für einen Software-Süchtigen wie mich ... - fluxtendu
@flextendu, angesichts der Leistungsanforderungen dieser alten Programme, könnten Sie fast sicher in einer virtuellen Maschine laufen. Mit VMware-Player, Virtual PC und Virtual Box gibt es keinen Grund, einen von ihnen nicht auszuprobieren, wenn Sie eine 32-Bit-Windows-Lizenz haben. Wenn Sie sich damit nicht anlegen wollen, arbeiten sie wahrscheinlich auch unter "Windows XP Mode". - Mark Booth
Übrigens werden 32-Bit-Anwendungen nicht mehr als 2 GiB RAM verwenden, es sei denn, in ihrem Manifest ist ein bestimmtes Flag aktiviert. Quelle: blogs.technet.com/b/markrussinovich/archiv/2008/11/17/... - Hello71
Ja, ich bin mir sicher, dass Hello71 auf etwas ziemlich Wichtiges getroffen hat, das hier nicht behandelt wird: Die meisten 32-Bit-Apps werden den zusätzlichen RAM niemals direkt nutzen. Ich denke, das ist erwähnenswert, oder? - Django Reinhardt


Grundsätzlich können Sie alles in größerem Maßstab tun:

  1. RAM pro Betriebssystem: RAM-Limit von 4 GB auf x86 für das Betriebssystem (die meiste Zeit)
  2. RAM pro Prozess: RAM-Limit von 4 GB auf x86 für Prozesse (immer). Wenn Sie denken, dass dies nicht wichtig ist, versuchen Sie eine große MSSQL-Datenbank-intensive Anwendung auszuführen. Es wird> 4GB selbst verwenden, wenn Sie es verfügbar haben und viel besser laufen.
  3. Adressen: Adressen sind 64 Bit anstelle von 32 Bit, so dass Sie "größere" Programme haben, die mehr Speicher benötigen.
  4. Griffe für Programme verfügbar: Sie können mehr Dateihandles, Prozesse, ... erstellen. Beispiel unter Windows x64 können Sie> 2000 Threads pro Prozess erstellen, aber auf x86 näher an ein paar hundert.
  5. Breitere Programme verfügbar: Von einem x64 können Sie sowohl x86 als auch x64 Programme ausführen. (Beispielfenster: wow64, windows32 bei windows64 emulation)
  6. Emulationsoptionen: Von einem x64 können Sie sowohl x86 als auch x64 VMs ausführen.
  7. Schneller: Einige Berechnungen sind auf einer 64-Bit-CPU schneller
  8. Aufteilung mehrerer Systemressourcen: Viel RAM-Speicher ist sehr wichtig, wenn Sie mindestens eine VM ausführen möchten, die Ihre Systemressourcen aufteilt.
  9. Exklusive Programme verfügbar: Mehrere neue Programme unterstützen nur x64. Beispiel Exchange 2007.
  10. Future veraltet x86 ?: Im Laufe der Zeit wird mehr und mehr 64-Bit verwendet und mehr und mehr x86 wird nicht verwendet werden. Hersteller werden daher nur 64 Bit mehr und mehr unterstützen.

Die 2 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, SSE-Erweiterungen werden jedoch nicht ausgeführt. Es gibt Hardware, die auf Itanium dediziert ist, um x86-Anweisungen auszuführen; Es ist ein Emulator, aber in Hardware.

Wie @Phil erwähnt hat, könnt ihr einen tieferen Blick darauf werfen wie es hier funktioniert.


107
2017-09-25 12:19



Äh. IA64 führt x86-Befehle aus. Es tut jedoch keine SSE-Erweiterungen. Es gibt Hardware, die auf Itanium dediziert ist, um x86-Anweisungen auszuführen; Es ist ein Emulator, aber in Hardware. - tzot
Vor ein paar Jahren hat Raymond Chen über den 2000 Thread "limit" geschrieben und es ist mehr oder weniger eine urbane Legende: blogs.msdn.com/oldnewthing/archive/2005/07/29/444912.aspx - bk1e
Upvote für Arstechnica für ihre Erklärung. - Avihu Turzion
RAM-Limit von 4 GB ist nicht ganz richtig (es ist eher eine künstliche Grenze für Windows-Systeme für Privatanwender), zu überprüfen PAE. Mit der aktuellsten Hardware kann ein Linux PAE-Kernel (der standardmäßig für 32-Bit verwendet wird) mehr als 4 GB problemlos verarbeiten. Gleiches gilt für FreeBSD und NetBSD. - Izzy
32bit-Systeme können wegen der "Adressen" (3.Punkt) nicht mehr als 4GB (1.Punkt) verwenden. Denn die höchste 32bit-Nummer ist 4.294.967.296 (= 4GB). Dein 1. und 3. Punkt sind also GLEICH. Sie können das 3. Punct entfernen. :) - Jet


Der größte Einfluss, den die Leute im Moment bemerken werden, ist, dass ein 32-Bit-PC nur maximal 4 GB Speicher adressieren kann. Wenn Sie Speicher entnehmen, der vom Betriebssystem für andere Zwecke reserviert wurde, wird Ihr PC wahrscheinlich nur ungefähr 3,25 GB nutzbaren Speicher anzeigen. Wechseln Sie zu 64 Bit und dieses Limit verschwindet.

Wenn Sie eine ernsthafte Entwicklung machen, könnte das sehr wichtig sein. Versuchen Sie, mehrere virtuelle Maschinen auszuführen, und bald ist der Arbeitsspeicher erschöpft. Server benötigen eher den zusätzlichen Speicher und Sie werden feststellen, dass die 64-Bit-Nutzung auf Servern weitaus größer ist als auf Desktops. Moores Gesetz sorgt dafür, dass wir immer mehr Speicher auf Maschinen haben und irgendwann werden Desktops auch auf 64bit als Standard umstellen.

Für eine sehr viel detailliertere Beschreibung der Prozessorunterschiede schauen Sie sich diesen ausgezeichneten Artikel an ArsTechnica.


46
2017-09-25 12:16



Die 32-Bit-Plattform und die 4-GB-Beschränkung sind etwas irreführend und sind (hauptsächlich) eine Grenze für die Architekturauswahl / -gestaltung des Betriebssystems. Wirklich, die 4GB von 32-Bit ist wirklich auf einem Limit in einem Prozess VA-Raum. Die physikalische Adresse unterstützt 36-Bit auf Intel 32-Bit-CPUs - Tall Jeff
Sie machen einen guten Punkt, der sicherlich stimmt. Aber die Auswirkungen in der realen Welt der PC-Benutzer ist, dass die Maschine nicht die vollen 4 GB verwenden wird, für die sie bezahlt haben. Mein Vater hatte dieses Problem und ist immer noch verwirrt, dass die 4GB, die er bezahlt hat, nicht vollständig genutzt werden können.
Schätzen Sie Ihren Standpunkt, aber wenn Sie nur versuchen, die Idee zu verbreiten, dass das Update nicht im Prozessor oder auf 64-Bit-Ebene ist, ist es nur eine Frage eines leicht verbesserten OS-Designs. Dies gilt beispielsweise für die Enterprise-Versionen von Windows selbst in 32-Bit-Versionen. Es ermöglicht 64 GB RAM. - Tall Jeff
Technisch ist das Limit nicht verschwunden. Es bewegt sich weiter dahin, wo es unpraktisch ist / unmöglich, so viel RAM auf einer Maschine zu irgendeiner Zeit in dem nächsten Jahrzehnt oder so zu installieren.
Siehe meine Bemerkung zu PAE oben: Das 4-GB-Limit gilt nicht für das gesamte System - sondern nur für einzelne Prozesse (kein Prozess kann auf 4 GB und höher zugreifen, aber das gesamte System, d. h. alle Prozesse zusammen, kann mit PAE aktiviert werden). Also, es sei denn, man hat Anwendungen, die davon profitieren, auf 4GB und höher zugreifen zu können (wie Video-Editoren / Konverter mit großen Videodateien). und 8GB + installiert, sollte es keinen großen Unterschied machen, ob mit 32bit oder 64bit. - Izzy


Nichts ist frei: obwohl 64-Bit-Anwendungen kann Zugriff auf mehr Speicher als 32-Bit-Anwendungen, der Nachteil ist, dass sie brauchen Mehr Speicherplatz. All diese Zeiger, die früher 4 Byte benötigten, benötigen jetzt 8. Zum Beispiel ist die Standardanforderung in Emacs 60% mehr Speicher, wenn es für eine 64-Bit-Architektur gebaut wird. Dieser zusätzliche Platzbedarf beeinträchtigt die Leistung auf jeder Ebene der Speicherhierarchie: Größere ausführbare Dateien benötigen mehr Zeit zum Laden von der Festplatte, größere Arbeitssätze verursachen mehr Paging und größere Objekte bedeuten weniger Anpassung in den Prozessor-Caches. Wenn Sie an eine CPU mit einem 16K L1-Cache denken, kann eine 32-Bit-Anwendung mit 4096 Zeigern arbeiten, bevor sie fehlschlägt und in den L2-Cache geht, aber eine 64-Bit-Anwendung muss nach nur 2048 Zeigern den L2-Cache erreichen.

Auf x64 wird dies durch die anderen architektonischen Verbesserungen wie mehr Register gemildert, aber auf PowerPC, wenn Ihre Anwendung> 4G nicht verwenden kann, läuft es wahrscheinlich schneller auf "ppc" als "ppc64". Sogar auf Intel gibt es Workloads, die auf x86 schneller laufen, und nur wenige laufen auf x64 um mehr als 5% schneller als x86.


31
2017-10-13 10:45



Diese Antwort legt nahe, dass PowerPC64 nicht so gut ist wie x86-64. Die Wahrheit ist, dass powerpc64 powerpc nicht verbessert hat, da powerpc nicht unterbrochen wurde. - ctrl-alt-delor
Linux hat jetzt einen x32 ABI, mit allen Geschwindigkeitsvorteilen von x86-64 (mehr Register, neu gestaltetes ABI), aber mit 32bit Zeigern. +1 für den Hinweis, dass die Vorteile des 64bit-Modus nicht von der tatsächlichen Breitenerhöhung herrühren, sondern von der Möglichkeit, viel Gepäck abzuwerfen, das die Architektur zurückhält. 64-Bit-Regs haben für einige Anwendungen einen Wert, aber 64-Bit-Pointer-Speicherplatz wird seltener benötigt. - Peter Cordes


Ein 64-Bit-Betriebssystem kann mehr RAM verwenden. Das ist es in der Praxis. 64-Bit-Vista / 7 verwenden raffiniertere Sicherheitsfunktionen, wenn sie wichtige Komponenten in den Arbeitsspeicher stellen, aber das ist nicht wirklich "bemerkbar".

Von ChrisInEdmonton:

Ein 32-Bit-Betriebssystem auf einem ix86   System mit PAE kann bis zu 64 adressieren   GB RAM. Ein 64-Bit-Betriebssystem   Auf x86-64 kann auf bis zu 256 TB zugegriffen werden   virtueller Adressraum, obwohl dies möglicherweise   in nachfolgenden Prozessoren erhöht werden   bis 16 EB. Beachten Sie, dass einige in Betrieb sind   Systeme begrenzen den Adressraum   weiter, und die meisten Motherboards werden   haben zusätzliche Einschränkungen.


19
2017-10-17 11:24



Für ein Betriebssystem bezieht sich 32-Bit NUR auf 64-Bit auf die Größe von Zeigern (was Ihr erster Absatz richtig diskutiert). -1: Einige Betriebssysteme entscheiden sich dafür, die Standard-Integer-Größe an die Zeigergröße zu binden, aber weder Windows noch Linux tun dies. Ganzzahlmathematische Genauigkeit ist unverändert. Kein weit verbreitetes OS ändert die Gleitkomma-Genauigkeit (was der zweite Absatz behauptet). "float" oder "single" ist 32-Bit, "double" ist 64-Bit, unabhängig davon, ob das Betriebssystem 32-Bit- oder 64-Bit-Zeiger verwendet. - Mr Fooz
Ah, ich habe mich eindeutig geirrt, danke fürs Aufräumen :) - Phoshi
Kein Problem. -1 -> +1 - Mr Fooz
Es kann sich lohnen, Ihre Antwort so zu bearbeiten, dass Sie angeben können, auf wie viel RAM zugegriffen werden kann. 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 erhöht werden kann. Beachten Sie, dass einige Betriebssysteme den Adressraum weiter einschränken und die meisten Motherboards zusätzliche Einschränkungen aufweisen. - ChrisInEdmonton
Ich wollte es einfach halten, wie die Zahlen sind meist hoch genug, um im Moment irrelevant zu sein, aber es kann nicht schaden, sie jetzt einzuhaken. - Phoshi


Ich bin mir nicht sicher, ob ich alle deine Fragen beantworten kann, ohne einen ganzen Aufsatz zu schreiben (es gibt immer Google ...), aber du musst deine Apps nicht anders für 64bit entwerfen. Ich schätze, dass man darauf achten muss, dass Zeigergrößen nicht mehr die gleiche Größe wie Ints haben. Und Sie haben eine ganze Menge potenzieller Probleme mit eingebauten Annahmen über bestimmte Arten von Daten, die vier Bytes lang sind und die möglicherweise nicht mehr wahr sind.

Dies wird wahrscheinlich alle möglichen Dinge in Ihrer Anwendung stolpern - vom Speichern / Laden von Dateien über das Iterieren von Daten, Datenausrichtung bis hin zu bitweisen Datenoperationen. Wenn Sie eine vorhandene Codebasis haben, die Sie portieren möchten, oder an beiden arbeiten, ist es wahrscheinlich, dass Sie eine Menge kleiner Fehler haben werden, die Sie durcharbeiten können.

Ich denke, das ist eher ein Implementierungsproblem als ein Designproblem. I.e. Ich denke, das "Design" von sagen, ein Fotobearbeitungspaket wird gleich sein, egal wie groß die Worte sind. Wir schreiben Code, der sowohl auf 32-Bit- als auch 64-Bit-Versionen kompiliert, und das Design unterscheidet sich sicherlich nicht zwischen den beiden - es ist die gleiche Codebasis.

Der grundlegende "große Deal" bei 64bit besteht darin, dass Sie Zugriff auf einen viel größeren Speicheradressraum als 32 Bit erhalten. Das bedeutet, dass Sie mehr als 4 GB Speicher in Ihren Computer integrieren können und tatsächlich einen Unterschied machen.

Ich bin sicher, dass andere Antworten in die Details und Vorteile mehr gehen werden als ich.

Um den Unterschied zu erkennen, suchen Sie programmatisch nur nach der Größe eines Zeigers (z. B. sizeof (void *)). Die Antwort von 4 bedeutet seine 32 Bits, und 8 bedeutet, dass Sie in einer 64-Bit-Umgebung laufen.


14
2017-09-25 12:29



Wenn Sie Programme schreiben, die zufällig davon ausgehen, dass bestimmte Zeigertypen dieselbe Größe wie bestimmte ganzzahlige Typen haben, dann tun Sie es. Das ist schon lange so. - David Thornley
@ David: Du hast absolut recht. Leider gibt es eine Menge Code, der genau das tut.


Ein 32-Bit-Prozess hat einen virtuellen Adressraum von 4 GB; Dies könnte für einige Apps zu wenig sein. Eine 64-Bit-App hat praktisch unbegrenzten Adressraum (natürlich ist sie begrenzt, aber Sie werden diese Grenze wahrscheinlich nicht erreichen).

Auf OSX gibt es andere Vorteile. Siehe die folgender Artikel, warum der Kernel im 64-Bit-Adressraum läuft (unabhängig davon, ob Ihre App 64 oder 32 läuft) oder Ihre App im 64-Bit-Adressraum läuft (während der Kernel noch 32 Bit ist) führt zu einer viel besseren Performance. Zusammenfassend: Wenn einer der beiden 64 Bit (Kernel oder App oder beides) ist, muss der TLB ("Translation Lookaside Buffer") nicht geleert werden, wenn Sie vom Kernel zum Space und zurück wechseln (was schneller wird) RAM-Zugriff).

Außerdem haben Sie Leistungssteigerungen, wenn Sie mit "long long int" Variablen arbeiten (64 Bit Variablen wie uint64_t). Eine 32-Bit-CPU kann zwei 64-Bit-Werte addieren / teilen / subtrahieren / multiplizieren, aber nicht in einer einzelnen Hardware-Operation. Stattdessen muss diese Operation in zwei (oder mehr) 32-Bit-Operationen aufgeteilt werden. Eine App, die sehr viel mit 64-Bit-Zahlen arbeitet, hat eine Geschwindigkeitszunahme, weil sie 64-Bit-Mathematik direkt in Hardware ausführen kann.

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 und je mehr Register die CPU hat, desto seltener müssen Registerwerte in den RAM und zurück in die Register getauscht werden.

Um herauszufinden, ob Ihre CPU im 64-Bit-Modus laufen kann, können Sie sich verschiedene sysctl-Variablen ansehen. Z.B. Öffnen Sie ein Terminal und geben Sie ein

sysctl machdep.cpu.extfeatures

Wenn es EM64T auflistet, unterstützt Ihre CPU 64-Bit-Adressraum gemäß x86-64-Standard. Sie können auch suchen

sysctl hw.optional.x86_64

Wenn es 1 (wahr / aktiviert) anzeigt, unterstützt Ihre CPU den x86-64 Bit-Modus, wenn es 0 (falsch / deaktiviert) sagt, tut es das nicht. Wenn die Einstellung überhaupt nicht gefunden wird, betrachten Sie sie als falsch.

Hinweis: Sie können sysctl-Variablen auch aus einer nativen C-Anwendung abrufen, ohne das Befehlszeilentool verwenden zu müssen. Sehen

man 3 sysctl

10
2017-09-25 12:34



error: "machdep.cpu.extfeatures" ist ein unbekannter Schlüssel
Ich nehme an, es heißt nicht EM64T, auch wenn Sie nicht unglücklich genug sind, um Intel zu haben.