Zum Inhalt springen

unterschied Win 32bit / 64bit


psi_2k

Empfohlene Beiträge

ich hab in 2 Wochen meine mündliche Abschlussprüfung und bräuchte noch ein paar Antworten die sich in meiner Präsentation ergeben könnten, da ich die Performance unterschiede und Kompatibilität von Windows Server 32bit und 64bit überprüfe...

Was der unterschied im groben ist weiß ich auch... würde mir nur gerne schon was zusammenlegen für die Prüfer die das mit Sicherheit fragen werden.

Hat da jemand vielleicht eine gute und/oder kurze Antwort für mich?

vielen dank schon mal im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja das ist denk ich das bekannteste das 32bit keine Adressierung über 4Gb Ram kann... aber wieso ? Wo sind die grundlegenden unterschiede ?

Der Hauptunterschied liegt darin, dass bei einem 64bit Prozessor ein doppelt so großer Adress- und Datenbus existieren (-> 64bit Datenverarbeitung pro Takt und 2^64bit Speicherzellen adressieren). Neben dem Vorteil das bspw. mehr RAM adressiert werden kann, steigt auch gleichzeitig die max. Groeße einer Integer-Variablen bei der Programmierung.

Grundlagen lernen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Breitere Register, mehr adressierbarer Speicher, dafür größere Pointer. Nachteil ist eine völlige Inkompatibilität zu Win32, du brauchst eigene Treiber und eigene Applikationen. Den zweiten Punkt umgeht Microsoft mit einer Emulationsschicht, die kostet aber Performance. Aktuell macht Win64 nur Sinn wenn du mehr als 4 GB Ram adressieren musst. Wird aber mittelfristig kommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

steigt die max. Groeße einer Integer-Variablen bei der Programmierung.

Das hab ich bislang anders verstanden. Integer ist und bleibt ein Datentyp der sich aus 4 Byte zusammen setzt (32 Bit).

Wenn man Integeroperationen auf einem 64 Bit System macht wird aus dem Integer in der CPU sowas wie ein long (8 Byte Ganzzahl) und sobald das Ding wieder in dem Ram kommt werden natürlich nur noch 4 Byte verwendet. Ist ja schließlich ein Integer. Interessant wirds wenn man von Haus aus Long verwendet. Auf einem 32 Bit System mussten diese Zahlen nämlich mehrmals durch die CPU da sie ja etwas übergewichtig sind und im ganzen nicht durchpassen.Auf 64Bit Systemen geht das auf einmal. Das heißt, man hat hier eine echt signifikante Zeitersparniss (leider wird long nicht oft genutzt da man selten was größeres als integer braucht. Bei Kommazahlen reicht auch meist float anstatt double, warum sollte man Speicher verschwenden wenn es nicht nötig ist). Außerdem kann man an einen 64 Bit Rechner auch 64 Adressleitungen zum Ram legen. Damit kann man dann logischerweise bis zu 2^64 Byte RAM adressieren.

Integer wird nicht größer. Aber Long wird Integer ersetzen wenn der RAM billiger wird, da die Rechenzeiten ja gleich sind und Speicher sowieso da ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Das hab ich bislang anders verstanden. Integer ist und bleibt ein Datentyp der sich aus 4 Byte zusammen setzt (32 Bit).

Klassischerweise beschreibt ein integer die "natürliche" Größe der CPU-Register. Also 32 Bit auf einer 32 Bit CPU und 64 Bit auf einer 64 Bit CPU. Aus Kompatibilitätsgründen kann man dieses Verhalten beim Erstellen/Compilieren von Programmen kontrollieren. D.h. man kann auch auf einem 64 Bit System entweder durch die entsprechenden Datentypen oder Compiler-Switches ein 32 Bit Modell verwenden.

Wenn man Integeroperationen auf einem 64 Bit System macht wird aus dem Integer in der CPU sowas wie ein long (8 Byte Ganzzahl) und sobald das Ding wieder in dem Ram kommt werden natürlich nur noch 4 Byte verwendet.

Ist ja schließlich ein Integer. Interessant wirds wenn man von Haus aus Long verwendet. Auf einem 32 Bit System mussten diese Zahlen nämlich mehrmals durch die CPU da sie ja etwas übergewichtig sind und im ganzen nicht durchpassen.

Nein. In C gilt die Regel, das ein long mindestens so gross wie ein integer sein muss. D.h. es kann sehr wohl sizeof(int)==sizeof(long) gelten. Aus diesem Grund gibt es beispielsweise bei Microsoft ein abstraktes Datenmodell, das für 32 und 64 Bit eigene integer Typen zur Verfügung stellt (d.h. es gibt beispielsweise ein "long32" und ein "long64".

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für andere Sprachen (wie z.B. Java) muss das aber nicht gelten. Aber nativ (auf Windows und C++ bezogen) hast du dann wohl recht.

Und mit Long meinte ich einen 64Bit-Long (in c dann wohl ein abstrakter Datentyp), mit dem eine 32Bit-CPU ja wohl nicht so schnell fertig werden kann, wie eine 64er.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde sagen, ein Integer ist einfach eine Ganzzahl die - in der Regel - so breit wie ein CPU Register ist.

Trotzdem muss ein Int aber nicht größer werden weil die Plattform sich ändert.

Beispielsweise kannst du seit .net 2.0 auch x64 Code erstellen lassen.

Wenn du das C# Schlüsselwort int verwendest, ist das ein Alias für System.Int32. Schaltest du auf x64 Code, wäre es möglich automatisch System.Int64 zu verwenden - das könnte aber zur Folge haben das sich der Code anders verhält (nur weil die die CPU eine andere ist), deshalb wird das bei Java, .NET und anderen 'Managed'-Sprachen nicht gemacht.

Wenn du allerdings einen nativen 64 Bit Compiler wie den Intel c++ Compiler für Visual Studio nimmst, ist ein int sehr wohl 64 und ein long plötzlich 128 Bit breit. Diesen Code kannst du dann aber auch natürlich nur auf x64 CPUs unter x64 Betriebssystemen ausführen und dürftest somit keine unerwarteten Überraschungen erleben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Es gibt 64-Bit-Compiler (C/C++), bei denen ein "int" oder auch ein "long" aus Kompatibilitätsgründen in der Standardeinstellung weiterhin 32-Bit lang sind.

Und genau aus diesem Grund hatte ich geschrieben, dass sich dieses Verhalten in der Regel über Compiler-Switches steuern lässt.

Wenn du allerdings einen nativen 64 Bit Compiler wie den Intel c++ Compiler für Visual Studio nimmst, ist ein int sehr wohl 64 und ein long plötzlich 128 Bit breit.

Bei welchem 64 Bit Compiler ist ein long denn per Default 128 Bit gross?

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...