Und noch ein Aspekt:
Läuft das Programm in einem 32 Bit-Windows, dann geht nur ein 32 Bit-Programm.
Und wenn ein 32-Bit-Programm in einem 64-Bit-Windows läuft, dann läuft das im 32-Bit-Subsystem des Windows,
also
alle viele
API-Aufrufe werden auf Systemebene erstmal auf 64-Bit umgewandelt und da dann ausgeführt. (da läuft dann ein 64-Bit-Programm natürlich ein klein bissl optimaler)
Am Stück im Arbeitsspeicher (nicht in einer Sequentiell gelesenen
DB)?
Stichwort Speicherfragmentierung.
Im Virtual-Memory der anwendung liegen überall DLLs, Stacks und Programmspeicher rum und es wird schwer große Stücken zusammenhängenden Speicher zu finden.
In 2GB mit viel freien Bereichen kann man damit rechnen, dass bei etwa 700MB Schluß ist.
In einem 64 Bit-Virtual-Memory ist das alles mehr verteilt und es ist sehr wahrscheinlich, dass du dennoch eine freie Fläche für mehrere zusammenhängende GB frei hast.
PS: Viele Smartphones haben 64 Bit drin, obwohl der gesamte
RAM oftmals nur 1 bis 4 GB ist.
32 Bit würden also vollkommen ausreichen, aber die Vorteile der 64 Bit sind nicht zu unterschätzen.
Ohne ein 32 Bit Subsystem würde das
OS dann auch viel kleiner, wartungsärmer und fehlerunanfälliger sein. (weniger drin, was auch noch kaputt gehn kann)