Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Welcher Type bei Integer Zahlen?


gih9 - Mo 08.03.04 12:12
Titel: Welcher Type bei Integer Zahlen?
Hallo,

ich hab da mal ne frage. Hab im delphi help folgendes gelesen

Zitat:
An integer type represents a subset of the whole numbers. The generic integer types are Integer and Cardinal; use these whenever possible, since they result in the best performance for the underlying CPU and operating system.


Wenn man nen for loop hat der vun 1 bis 10 zählt, ist es nun besser byte zu benutzen oder sollte man immer wenn nur möglich integer oder cardinal benutzen? Ich hätte doch mal gedacht dass das Program weniger speicher braucht wenn man 8-bit variable benutzt als 32-bit.

Danke für ne erklärung.

Moderiert von user profile iconTino: Topic verschoben.


ErnestoChe - Mo 08.03.04 13:01

Hallo,

wenn du ein 32-Bit OS hast und deine CPU auch eine 32-Bit CPU ist, dann sind Operationen mit 32-Bit Datentypen schneller. Daher würde ich in deinem Fall in der Schleife einen 32-Bit Datentyp vorziehen.

MFG

- Ernesto -

// Nachtrag: auf einem 16-Bit-System wären Integer und Cardinal 16-Bit Groß - das ist mit generic type gemeint, da sie sich dem zugrundeliegenden System anpassen


gih9 - Mo 08.03.04 13:06

Gibt es denn überhaupt eine anwendung für 8 oder 16-bit variablen wenn man ein 32 bit os hat?

gih9


MSCH - Mo 08.03.04 14:12

Die Frage, ob 8, 16, 32 oder 64 ist nicht alleine von BS abhängig, sondern auch was man damit erreichen will.
Hardwarezugriffe, Netzwerke etc. benötigen und fordern manchmal nicht die ganze Bandbreite.
Solange du auf der CPU bleibst, in deiner Frage auf einer FOR-Schleife, solltest du diese natürlich so schreiben,
dass deine CPU optimal arbeiten kann.

grez
msch


Delete - Mo 08.03.04 20:30

gih9 hat folgendes geschrieben:
Gibt es denn überhaupt eine anwendung für 8 oder 16-bit variablen wenn man ein 32 bit os hat?


Hat mit dem OS weniger zu tun als mit der CPU.
Und ja die CPU hat instruktionen für operationen mit 8 oder 16 Bits. Die neuen eben auch für Operationen mit 64 Bits.
Am schnellsten sind bei allen aktuellen ohne 64Bit support die 32 Bit befehle, aber ein großer unterschied ist es nicht, wenn überhaupt einer.
Höchstens beim Speicherzugriff.