Entwickler-Ecke

Off Topic - Speicherbedarf unter Win XP


CarpeDiem - Di 09.12.08 19:16
Titel: Speicherbedarf unter Win XP
Hallo,
eine kleine Anfängerfrage. Wieviel Speicherplatz braucht eine Integer(eigentlich int16 von früher) unter Win XP. Dachte immer, daß Win XP eine 32bit-Architektur hat und deshalb auch für int16 32bit reserviert. Weiß jemand was genaues?
Vielen Dank.


jaenicke - Di 09.12.08 19:29

Das hat mit Windows nix direkt zu tun sondern mit der Speicherverwaltung des Programms. Bei Records nutzt Delphi z.B. normalerweise 4 Byte Alignment, es sei denn man schreibt packed record, was alles hintereinander in den Speicher zwingt.

Grundsätzlich kannst du auf Assemblerebene ja entweder ein komplettes 32-Bit Register ansprechen oder nur einen Teil davon. Ein normaler Wert vom Typ Integer hat 32 Bit.


Delete - Mi 10.12.08 09:30

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Bei Records nutzt Delphi z.B. normalerweise 4 Byte Alignment, es sei denn man schreibt packed record, was alles hintereinander in den Speicher zwingt.

Was hat die Ausrichtiung von Records jetzt mit seiner Frage zu tun? Wenn ich ein Integer in ein Record packe brauch er imme rnoch seine datentypgröße, egal wie das Alignment aussieht.

Die Frage ist nicht ganz so leicht zu beantworten und ich bin mir da auch immer unsicher. Ein Delphi Integer ist immer so groß wie die zugehörige Architektur. Spricht unter 32-Bit ist er 32 Bit groß und unter 64-Bit 64 Bit. Es gibt aber noch Ganzzahltypen, die eine feste Größe haben, wie zum Beispiel LongInt. Ein LongInt ist immer 32 Bit groß, egal auf was für einen System. Wie sich die unterschiedlichen Datentypen in den unterschiedlichen Programmiersprachen verhalten, musst du der Dokumentation entnehmen.