Ist auf einem x86 64 Bit Rechner eine 32 Bit Anwendung schneller beim Speicherzugriff auf den Arbeitsspeicher als eine



  • 64 Bit Anwendung, oder sind beide gleichschnell?

    Prinzipiell müßte die 32 Bit Anwendung ja schneller sein, weil die Bandbreite der RAM Module und deren Annbindung ja begrenzt ist, oder?



  • es kommt nicht drauf an wieviel bit die anwendung hat, sondern wieviel bit die daten haben. die speicherbandbreite aendert sich zwischen 32bit und 64bit normalerweise nicht und ein uint32_t bleibt auf beiden 32bit.



  • Okay, sagen wir 32 Bit breite ints/doubls whatever vs. 64 Bit breite.



  • floats brauchen die halbe bandbreite von doubles, 8bit ints die haelfte von 16bit ints die haelfte von 32bit ints die haelfte von 64bit ints die haelfte von 128bit ints.

    ist alles aber nicht wirklich davon abhaengig fuer wieviel bit du compilierst.



  • Geringfügig schneller kanns schon sein, da die CPU 64bit Werte nicht in 2 Einzelstücken laden muss.



  • Ethon schrieb:

    Geringfügig schneller kanns schon sein, da die CPU 64bit Werte nicht in 2 Einzelstücken laden muss.

    Es ging mir nicht um 32 bit vs. 64 bit CPU, sondern 32 Bit vs. 64 Bit Daten und Programm auf einer 64 Bit CPU mit 64 Bit OS.



  • Die Daten werden im Arbeitsspeicher generell vom Compiler so angelegt, so dass der Zugriff möglichst effizient erfolgt. Das wird dadurch erreicht, dass die Daten an einer Adresse angelegt werden, die ein Vielfaches ihrer Größe entsprechen und gleichzeitig aber auch eine 2er-Potenz sind. Dadurch kann die Adresse effizient durch Bit-Shifts berechnet werden, die ja auch nichts anderes als Multiplikationen mit 2 bilden.
    Und wie auch schon erwähnt wurde, ist der Zugriff auf den Arbeitsspeicher abhängig von der Größe des Datums. Wenn ein Datum zwei Zeilen im RAM belegt, muss entsprechend zwei mal auf den RAM zugegriffen werden.

    Siehe auch:
    http://de.wikipedia.org/wiki/Speicherausrichtung
    http://en.wikipedia.org/wiki/Data_structure_alignment

    L. G.
    Steffo



  • 64 Bit vs. 32 Bit schrieb:

    64 Bit Anwendung, oder sind beide gleichschnell?

    Prinzipiell müßte die 32 Bit Anwendung ja schneller sein, weil die Bandbreite der RAM Module und deren Annbindung ja begrenzt ist, oder?

    Beide Anwendungen sind beim Zugriff auf den Speicher gleich schnell.

    Wobei die 32 Bit Anwendung z.T. weniger Daten brauchen wird, da ihre Zeiger, size_t, intptr_t etc. nur 32 Bit breit sind, d.h. da ein wenig gewinnen kann.
    Dagegen hat die 64 Bit Anwendung zusätzliche Register und Befehle zur Verfügung, was auch einiges bringen kann.

    Was im Endeffekt schneller ist wird wohl von der Anwendung abhängen.


Anmelden zum Antworten