Wie wichtig ist 64-Bit-Programme unter 64-Bit-Betriebssystemen?

40

Ich habe kürzlich ein Upgrade von meiner alten 32-Bit-Version auf ein 64-Bit-Betriebssystem (Windows 7) durchgeführt. Mir ist aufgefallen, dass es sich bei einigen Anwendungen (zB DC-Client, Tortoise SVN, Grafiktreiber) um 32-Bit-Anwendungen (zB Firefox, Adobe Reader) handelt.

Wie wichtig ist es also, 64-Bit-Anwendungen zu haben (in Bezug auf die Leistung)? Ich benutze meinen Laptop für viele verschiedene Dinge wie Spiele, Codierung usw.

apoorv020
quelle
1
Warten Sie einfach, bis Sie anfangen möchten, Ihre alten Lieblingsspiele mit 16-Bit-Installationsprogrammen zu spielen. Die Abwärtskompatibilität für diese Versionen ist in XP64 / 32, Vista32 und 7 32, jedoch nicht in Vista64 oder 7 64 enthalten.
Alain
1
@Alain: Ich war sowieso nie in der Lage, alte Spiele auf meinem 32-Bit-Betriebssystem zum Laufen zu bringen, daher ist dies wahrscheinlich kein großer Verlust.
apoorv020
1
Es ist, wenn Sie Master of Orion II und Populous the Beginning genauso lieben wie ich;) Wie auch immer, Windows Virtual PC + eine alte Betriebssystem-Installations-CD erledigt den Trick und erspart Ihnen das doppelte Booten.
Alain
Die größte Verbesserung, die ich aus Anwendersicht bemerkt habe, ist die Fähigkeit, größere Dateien als 2 GB zu laden. Besonders beim Arbeiten mit großen Bildern in Adobe-Software.
Svardskampe
@Alain, da die verschiedenen VM-Software-Versionen unterschiedliche Audio- / Videotreiber für alte Betriebssysteme unterstützen, wird auch das nicht immer funktionieren. Ich hatte verdammt viel Zeit, um Jewels of the Oracle II zum Laufen zu bringen.
Synetech

Antworten:

35

Ich denke nicht, dass es so wichtig ist, 64-Bit-Anwendungen an sich zu haben.

Der Vorteil einer 64-Bit-Anwendung besteht darin, dass sie:

  • Greifen Sie auf viel mehr Speicher zu¹
  • Führen Sie 64-Bit-Registeroperationen aus.²

¹ Ein 64-Bit-Programm ist möglicherweise etwas schneller (je nachdem, wie es funktioniert). Wenn Ihre Anwendung speicherintensiv ist (z. B. Photoshop, 3D-Rendering usw.), können Sie mit einer 64-Bit-Version auf den gesamten Arbeitsspeicher des Computers zugreifen. Ohne das wird es irgendwo um 2 GB beschränkt sein. Dies gilt für jede Anwendung , sodass zwei Anwendungen auf insgesamt 4 GB zugreifen können.

² Die Ausführung eines 64-Bit-Vorgangs unter einem 64-Bit-Betriebssystem ist schneller als unter einem 32-Bit-Betriebssystem. Mindestens zwei 32-Bit-Vorgänge sind erforderlich, um dasselbe auszuführen.

In Bezug auf die Stabilität sollte es keinen Unterschied zwischen 64-Bit- und 32-Bit-Anwendungen geben.

Majenko
quelle
Ich denke, mein DC-Client führt das Datei-Hashing jetzt mit einer deutlich verbesserten Geschwindigkeit durch.
apoorv020
Das macht Sinn, wenn es Hashes macht. Einige davon können für höhere Bitbreiten optimiert werden.
Joshua Nurczyk
Es ist auch möglich, Annahmen über die Fähigkeiten der CPU mit x86-64 zu treffen, wie die Unterstützung von SSE3.
Afrazier
4
Standardmäßig haben Anwendungen, die unter 32-Bit-Windows ausgeführt werden, nur Zugriff auf 2 GB Arbeitsspeicher. Das gesamte Betriebssystem hat Zugriff auf etwas mehr als 3 GB, die von allen Anwendungen gemeinsam genutzt werden können.
Michael Steele
@Michael Steele ist richtig. Der maximal verfügbare Speicher für das System beträgt in der Regel 3,12 GB, der Rest ist für die Adressierung von Hardware reserviert. Weitere
Steven Evers
10

Der größte Vorteil der Verwendung einer 64-Bit-Anwendung unter einem 64-Bit-Betriebssystem besteht darin, dass Sie vollen Zugriff auf den gesamten auf dem System verfügbaren Speicher haben. Mit 64-Bit-Speicheradressen kann die Anwendung auf mehr Speicher als ihre 32-Bit-Entsprechung zugreifen.

Außerdem funktionieren 64-Bit-Programme "besser" als 32-Bit-Programme, da sie die native Systemarchitektur verwenden. Operationen wie das Lesen des Speichers werden nativ usw. ausgeführt. Dies bedeutet, dass das Betriebssystem keine zusätzliche Arbeit zum "Übersetzen" (Packen / Entpacken des Speichers usw.) der von der Anwendung verwendeten Befehle ausführen muss.

Die meisten Programme - wie Firefox, Word, Adobe Reader usw. - warten jedoch die meiste Zeit auf Benutzereingaben, sodass die Effizienz nicht unbedingt im Vordergrund steht. Außerdem benötigen die meisten dieser Anwendungen (im Moment) nicht den zusätzlichen Speicher, auf den sie mit 64 Bit zugreifen können.

Programme wie Grafiktreiber müssen effizient arbeiten und möglicherweise Zugriff auf höhere Speicherregister haben und müssen daher 64-Bit sein.

ChrisF
quelle
1
Systemtreiber müssen in vielen Fällen 64-Bit sein, wenn sie auf bestimmte Speicherregister zugreifen müssen. Ich glaube, bestimmte Dinge funktionieren mit 32-Bit-Treibern auf einem 64-Bit-System, aber nichts Intensives wie eine Grafikkarte
Joshua Nurczyk
1
@Joshua: Systemtreiber hängen wirklich vom Betriebssystem und dem Maschinenbogen ab. Einige 64-Bit-CPUs verfügen nicht über Modi. Sie haben lediglich 64-Bit-Anweisungen hinzugefügt. x86_64 verfügt über einen teuren Modusschalter, um von 64 auf 32 und zurück zu wechseln. Daher müssen Treiber fast immer 64-Bit sein.
Zan Lynx
Bitte erläutern Sie, was Sie unter Arbeit "besser" verstehen.
Glenviewjeff
5

Ja, Sie können die 32-Bit-Apps problemlos auf Ihrem 64-Bit-Betriebssystem ausführen, ABER. Es gibt ein weiteres Problem, Platz zu verschwenden - die Bibliotheken. Grundsätzlich würde eine App die entsprechende Bibliothek laden, die sie benötigt. Das Problem ist jedoch, dass 64-Bit-Bibliotheken nicht mit 32-Bit-Bibliotheken kompatibel sind und umgekehrt.

Natürlich werden die benötigten Bibliotheken normalerweise mit der Anwendung selbst ausgeliefert, aber die Kernbibliotheken - Windows - werden zweimal gespeichert - eine davon - die 32-Bit-Bibliothek und die andere - die 64-Bit-Bibliothek.

Sie belegen auch mehr Arbeitsspeicher im RAM, wenn Sie eine 32-Bit-Anwendung und eine 64-Bit-Anwendung gleichzeitig ausführen. Die beiden Apps haben ihre eigene Version der Bibliothek geladen und verwenden daher mehr RAM, als sie könnten, wenn beide dieselbe Bibliothek verwenden.

Um RAM und Festplattenspeicher zu sparen, sollten Sie versuchen, nur 64-Bit-Apps auszuführen und zu installieren. Installieren Sie nur 32-Bit-Apps, wenn Sie keine 64-Bit-Version finden konnten. Inzwischen werden immer mehr Apps in beiden Versionen ausgeliefert.

Evengard
quelle
4

Die Antwort ist "es kommt darauf an"

Einige 32-Bit-Anwendungen funktionieren im 64-Bit-Modus nicht, z. B. Grafiktreiber und Shell-Erweiterungen (z. B. Tortoise SVN). In diesem Fall benötigen Sie eine 64-Bit-Version.

Bei anderen normalen Anwendungen kommt es darauf an, was sie tun.

Wenn Sie beispielsweise über 16 GB Arbeitsspeicher verfügen und SQL Server mit einer extrem großen Datenbank ausführen, ist eine 64-Bit-Version von SQL sehr wichtig.

Wenn Sie jedoch über 4 GB Arbeitsspeicher verfügen (wobei fast 1 GB von der Grafikkarte "gestohlen" wird), ist möglicherweise nicht genügend Arbeitsspeicher verfügbar, und die Verwendung von 64-Bit-Anwendungen (für die möglicherweise mehr Arbeitsspeicher erforderlich ist) verlangsamt möglicherweise Ihr System.

Selbst wenn Sie die Speichererwägungen ignorieren, können Sie nicht mit Sicherheit sagen, dass eine im 64-Bit-Modus ausgeführte 32-Bit-Anwendung schneller oder langsamer als die entsprechende 64-Bit-Anwendung ist und ob die Anwendung schneller oder langsamer als eine 32-Bit-Anwendung ist -Bit-Betriebssystem.

Wenn ich persönlich ein Hilfsprogramm oder eine kleine Anwendung für meinen Computer suche, überprüfe ich, ob es mit einem 64-Bit-Betriebssystem funktioniert. Ob es sich jedoch um eine 32-Bit- oder eine 64-Bit-Anwendung handelt, steht normalerweise nicht ganz oben auf meiner Prioritätsliste .

Laut Process Explorer werden derzeit 25 64-Bit-Prozesse und 28 32-Bit-Prozesse ausgeführt (Chrome wird ignoriert).

sgmoore
quelle
3

Beachten Sie, dass unter 64-Bit-Windows 32-Bit-Anwendungen über eine als WOW64 bekannte Emulationsebene ausgeführt werden , die einige zusätzliche Einschränkungen auferlegt, die unter 32-Bit-Windows-Betriebssystemen nicht gelten.

Von https://msdn.microsoft.com/en-us/library/aa384219(v=vs.85).aspx :

Leistung und Speicherverbrauch unter WOW64

  • Prozessorhardware. Die Befehlsemulation wird auf dem Chip ausgeführt. Auf dem x64-Prozessor werden Anweisungen nativ von der Mikroarchitektur ausgeführt. Daher ist die Ausführungsgeschwindigkeit unter WOW64 unter x64 mit der unter 32-Bit-Windows vergleichbar. Auf dem Intel Itanium-Prozessor ist mehr Software in die Emulation involviert und die Leistung leidet darunter.
  • API-Thunk-Overhead. Dieser Aufwand ist im Vergleich zum NT-Kernel-Aufruf selbst gering. NT-Kernelfunktionen sollen selten aufgerufen werden.
  • Größe des virtuellen Speichers. Auf dem Intel Itanium-Prozessor sorgt WOW64 für erheblichen Overhead, wenn zwei oder mehr Instanzen derselben 32-Bit-Anwendung gleichzeitig ausgeführt werden. Dies liegt an den nativen 8-KB-Seiten auf dem Intel Itanium, was die Emulation der nativen 4-KB-Seiten auf der x86-Architektur erschwert (mehr Seiten werden als beschreibbar markiert; alle beschreibbaren Seiten sind für den Prozess privat). Dies kann die Skalierbarkeit der Terminaldienste auf bestimmten Prozessoren beeinträchtigen. Dies ist beim x64-Prozessor nicht der Fall.
  • Workingset. WOW64 vergrößert den Arbeitssatz der Anwendung.

  • Mit WOW64 können 32-Bit-Anwendungen den 64-Bit-Kernel nutzen. Daher können 32-Bit-Anwendungen eine größere Anzahl von Kernel- und Fensterhandles verwenden. 32-Bit-Anwendungen sind jedoch möglicherweise nicht in der Lage, unter WOW64 so viele Threads zu erstellen, wie sie können, wenn sie nativ auf x86-basierten Systemen ausgeführt werden, da WOW64 jedem Thread einen zusätzlichen 64-Bit-Stapel (normalerweise 512 KB) zuweist. Darüber hinaus ist ein Teil des Adressraums für WOW64 selbst und die von ihm verwendeten Datenstrukturen reserviert. Der reservierte Betrag hängt vom Verarbeiter ab; Auf dem Intel Itanium ist mehr als auf dem x64-Prozessor reserviert.

Adam Lawrence
quelle
+0. Was sind diese Einschränkungen? Bitte bearbeite deine Antwort und erkläre sie.
Unvergesslich am
Wir graben nach Zombies. Diese Antwort ist fast sechs Jahre alt, weißt du ...
Adam Lawrence
+1. Danke für deine Bearbeitung! Ich habe versucht, eine neuere Variante der Frage zu veröffentlichen, diese wurde jedoch als "zu breit" geschlossen. Soweit ich weiß, sind alle offenen Versionen dieser Frage auf Super User mindestens sechs Jahre alt.
Unvergesslich
1

Lassen Sie uns nicht so kurz schneiden. 64-Bit-Rocks. Wenn Sie es bekommen können, verwenden Sie es. Visual Studio und SQL Server (auch wenn nur Management Studio verwendet wird) profitieren alle von einer 64-Bit-Version. Man kann nicht sagen, dass es sich nicht lohnt. Nein, das ist keine Notwendigkeit, aber wir sollten versuchen, die Geschwindigkeit von Notebooks und Laptops für Entwickler und andere Benutzer (auch Nicht-Techniker, die einfaches MS Word verwenden) zu verbessern. Warum nicht in Ihrem Unternehmen für 64-Bit werben und werben? Es ist wirklich nicht mehr so ​​neu ... es wird oder war alltäglich.

Es ist lächerlich zu sagen, dass Sie nicht viel von 64-Bit profitieren, genauso wie es lächerlich ist, mir zu sagen, dass das Hinzufügen von 4 Gigs, um insgesamt 8 Gigs auf einem Laptop zu absolvieren, keinen Benutzer wert ist. Dies ist nur ein weiteres Beispiel für gierige IT-Netzwerkadministratoren oder Unternehmen, bei denen ein Upgrade auf 64-Bit in den meisten Fällen kostenlos ist und der Arbeitsspeicher dann lächerlich billig ist und die Produktivität Ihrer Benutzer um das Zweifache verbessert.

Also nein, es ist kein Muss, sollte aber ein Muss sein. Ich mag keine Minimalisten, wenn es um Tools wie Desktops und Laptops geht.

Ich stimme wirklich nicht zu, wenn die Leute sagen, dass 64-Bit-Apps etwas sind, mit dem man immer noch super "vorsichtig" sein muss ... zumindest nicht so viel wie beim ersten Erscheinen, das ist sicher.

Wenn 64-Bit ein solches Problem wäre, würden die meisten Desktops und Laptops heutzutage nicht auf 64-Bit-Win 7 migrieren. Unser gesamtes Unternehmen gibt Win 7 Pro 64-Bit an ALLE Benutzer (über 100.000 Mitarbeiter) weiter.

WeDoTDD.com
quelle
Es wäre hilfreich, wenn Sie genau erklären könnten, was an 64-Bit "rockt". Hier wird nach einer technischen Erklärung gesucht.
Glenviewjeff
Also macht es Sinn, 4 Gigabyte auf eine Maschine zu legen, die nie mehr Speicher als zuvor belegt hat? Ok, wenn Sie wissen, dass Sie es verwenden würden, wenn es verfügbar ist, aber sonst ist dies nur unnötig. Dies hat nichts mit Gier zu tun, sondern nur damit, dass Sie in Dinge investieren können, die möglicherweise sinnvoller sind. Ein Upgrade der CPU bringt auf jeden Fall Vorteile. Nicht zu sagen, dass viel RAM eine schlechte Sache ist (ich habe selbst 16 GB), aber ich würde meinen alten Laptop nicht auf 8 GB aufrüsten, da die 4 GB meine Arch-Installation wirklich gut halten! 64bit ist jedoch etw. das ist in den meisten
fällen
0

Es kommt ganz auf die Anwendung an. Die meisten Anwendungen arbeiten in 32-Bit-Form genauso wie in 64-Bit-Form. Für die Anwendungen, bei denen es darauf ankommt, ist Ihnen mit ziemlicher Sicherheit bewusst, dass die 32-Bit-Versionen begrenzt sind und keine Fragen stellen müssen.

Ein Bereich, auf den Sie achten müssen, ist, wenn eine Anwendung eine 64-Bit-Version mit schlechter Unterstützung von Drittanbietern hat. Ich denke an Excel 2010, das in 64-Bit-Form verfügbar ist. Excel 64 selbst funktioniert einwandfrei, es wurden jedoch noch einige Erweiterungen und Add-Ons von Drittanbietern portiert. Ein weiteres Beispiel ist Python unter Windows. Auch hier ist eine Reihe wichtiger Nicht-Core-Module in 64-Bit-Form nicht oder nur schwer erhältlich.

Wenn Sie also nicht unbedingt 64-Bit für die betreffende Anwendung benötigen, können Sie mit der 32-Bit-Version häufig sicherer bleiben.

David Heffernan
quelle