mytea schrieb:
4GB macht bei 64bit einfach generell keinen Sinn. Das ist wie 32bit mit 3Gb. Weil unter einem 64bit Betriebssystem braucht jedes Programm ca.50% mehr Speicher. 8Gb würde ich schon gleich reinmachen. Ok, ich mache auch nur selten Spiele, hauptsächlich CAD, da ist selbst 8Gb nur mittelklasse.
weil für jede Variable im Speicher 64bit anstatt 32bit Speicher reserviert werden müssen. Deswegen für die Variablen 100% mehr Speicherbedarf, in der Praxis ergeben sich dann meist ca. 50% mehr Speicherbedarf
Da du es so gerne mit Prozenten hast hier ein Prozentwert für dich: Das ist 100%iger Blödsinn!
Erstmal egal ob 32 Bit oder 64 Bit die kleinste Adressierbare Einheit ist das Byte (8 Bit). Zudem gibt es unterschiedliche Datentypen. Es gibt für gewöhnlich (diese ganzzahligen) Datentypen: 8, 16 und 32 Bit. Die 64 Bit Technik führt erst mal nur ganzzahlige 64 Bit Variablen ein. Bei einer 64 Bit Maschine werden die 64 Bit eben auf 8 Byte abgebildet (8 kleinste adressierbare Einheiten), jedoch wenn man eine 8 Bit Variable nutzt dann verbraucht diese 8 Bit Variable nicht auf einmal 64 Bit bei einer 64 Bit Maschine oder 32 Bit bei einer 32 Bit Maschine sondern eben
genau 8 Bit, da sie genau auf eine dieser kleinsten adressierbaren Einheiten abgebildet werden kann und so nichts aufgefüllt werden muss oder sonstiger Blödsinn! Die Variablen einer 64 Bit Anwendung die aber nur 32 Bit Variablen benutzt verbrauchen im Speicher
genau so viel wie bei einer 32 Bit Anwendung!
Jedoch gibt es tatsächlich eine Erhöhung des Speicherverbrauchs aber nicht weil jede Variable automatisch 64 Bit ist sondern wegen zwei ganz anderen Gründen die wiederum aber auch gerade die Vorteile widerspiegeln:
Der erste Grund ist, dass die Zeiger (Referenzen)
nicht die Variablen mehr Bit besitzen, dies ist nötig da mit 32 Bit Zeigern nur maximal 2 Gigabyte (signed) oder 4 Gigabyte (unsigned) bereit stünden! Daher muss man den Zeigern auch mehr Bits geben damit man diese Hürden endlich ohne umständliche Tricks (die wiederum sogar mehr Speicher und Rechenzeit bräuchten als das hier) nutzen kann.
Der zweite Grund ist, dass man jetzt wo man 64 Bit Variablen hat diese auch nutzt um damit Berechnungen zu beschleunigen oder gar erst ohne umständliche Tricks (die wieder mehr Speicher und Rechenleistung bräuchten) zu realisieren oder eben um größere Zahlenbereiche abzudecken! Zum Beispiel die bekannte Unixtime kann in 32 Bit maximal den Januar 2038 angeben wenn weiter auf 32 Bit gesetzt würde, würde dort das
echte "Jahr 2000 Uhrenproblem" auftreten und etliche Systeme Fehler produzieren oder ihren Dienst verweigern. Man kann das zwar auch mit 32 Bit umgehen, dies würde aber mehr Rechenleistung verschlingen und mindestens genau so viel Speicher wie wenn man es gleich als 64 Bit nutzen könnte. Ähnlich verhält es sich bei 64 Bit Anwendungen die sinnvollerweise auch 64 Bit Variablen einsetzen! Natürlich kann man auch unsinnvollerweise alles als 64 Bit Variable deklarieren aber dann liegt das Problem nicht an der Technik sondern am Entwickler!
Also im Endeffekt hat man je nach Anwendung vielleicht gerade mal 20-40% mehr Speicherverbrauch (hängt davon ab ob man viele kleine Variablen und viele Referenzen auf diese hat oder ob man eher mit wenigen Referenzen und großen zusammenhängenden Daten auskommt), etliche Vorteile und kann selbst bei 4 GB RAM auf den gesamten RAM zugreifen und nicht wie unter 32 Bit Systemen (aus Anwendungssicht) auf maximal nur 2 GB RAM. Und nein das ist kein Schreibfehler oder ähnliches, denn das ist die Grenze bei 32 Bit Programmen, beim Betriebsystem sind es durch einen kleinen Trick 4 GB. Selbst da ist es aber fraglich wie viel nutzbar ist, da es System abhängig ist und bei einigen System trotz 4GB verbautem RAM nur unter 2 GB RAM zu Verfügung stehen können!
Ich hätte das jetzt zwar noch weiter ausführen können (etliches weggelassen oder nicht genau angegangen) aber das würde den Beitrag zu sehr aufblähen. Meiner Meinung sind 64 Bit selbst bei 4 GB verbautem RAM in den aller meisten Fällen sinnvoll, da hier einer 64 Bit Anwendung (auch effektiv) mehr Speicher zur Verfügung steht!
Mehr als 4GB RAM sind heute weder notwendig (auch nicht bei 64 Bit Systemen) noch uneingeschränkt sinnvoll! Einzig bei sehr speicherlastigen 64 Bit Anwendungen wird man hier Vorteile erhalten aber solche sind momentan leider noch nicht so häufig.
Abgesehen davon gibt es auch andere Vorteile die, die 64 Bit Technik bringt...
mytea schrieb:
Aber bei Win64 (Vista/7) hat man doch schon 2 GB verbraucht nachdem nur das System vollständig gebootet ist.
Das liegt weniger an den 64 Bit sondern daran, dass Vista / Win7 eben die Politik verfolgt, dass nur genutzter Speicher sinnvoller Speicher ist. Somit wird auch viel verbraucht wenn viel vorhanden ist. Alles andere wäre auch Unsinn, denn ungenutzter Speicher ist eben nutzloser Speicher!
mytea schrieb:
4GB finde ich schon ein bisschen wenig. Ram kann man nie genug haben, und immer lieber langsamerer und dafür mehr Ram, die Regel gilt schon seit 20 Jahren.
Unsinn! Eine Menge Speicher der nicht genutzt wird bringt dir gar nichts. Man sollte nicht ohne Verstand so viel rein hauen wie geht sondern so viel wie benötigt wird nicht mehr und auf keinen Fall weniger!
Die 4 GB RAM sind für 32 Bit Spiele (was fast alle Spiele ausmacht) die nur (ohne Tricks) 2 GB RAM nutzen können mehr als ausreichend. Für das Bearbeiten von Video reicht das auch aus sofern es da ohnehin eine 32 Bit Anwendung ist und / oder er es da nicht zu sehr übertreibt. Gerade wegen letzterem könnte man höchstens noch ans aufrüsten von Speicher denken aber hier muss er selbst entscheiden ob es für sein Bedürfnisse ausreichend ist oder nicht und zur Not lässt sich sowas auch nachträglich aufrüsten.