Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Grösse eines Arrays ?


Hochhaus - Fr 18.04.14 18:29
Titel: Grösse eines Arrays ?
Hallo allerseits !

ist die Grösse eines Arrays unter Delphi nach oben begrenzt ? Oder ist nur der Hauptspeicher die limitierende Grösse ?
Wie sieht es bei anderen Sprachen aus ? (C++, VisualBasic etc.)

Danke für jede Antwort !


Hochhaus


jaenicke - Fr 18.04.14 18:53

Durch die Sprache gibt es bei den gängigen Sprachen keine besondere Begrenzung. Unter 32-Bit logischerweise nur etwa 2 GiB bzw. etwas weniger als der maximale Wert eines Integers als maximale Arraylänge, unter 64-Bit entsprechend mehr.

Der Hauptspeicher ist nur ein Faktor. Dazu kommt, dass für ein durchgehendes Array auch so viel durchgehender Speicher vorhanden sein muss. Gerade bei 32-Bit Systemen ist das nicht so einfach, da dort eher keine 2 GiB als durchgehender Speicher verfügbar sind.

Deshalb macht es wenig Sinn dort an das theoretische Maximum zu gehen, sondern eher das ganze besser im Speicher zu organisieren.


Palladin007 - Fr 18.04.14 19:52

Was die Größe eines Arrays angeht, musst du dir keine Sorgen machen.

Wie jaenicke schon sagt, hast du mehrere GiB Platz, wirklich auslasten wirst du aber vermutlich nicht mal einen halben GiB.

Integer ist zum Beispiel nur 4 Byte groß. Grob gerechnet wären das 500 Millionen Elemente in einem Array.
Eine Million Elemente sind schon viel.

Worüber du dir eher Sorgen machen solltest ist die Zeit, die es braucht um alle Elemente zu durchlaufen, das dauert je nach Leistung des PCs schon bei 1 Million Elemente eine kleine Weile, bei 500 Millionen wirst du wahrscheinlich ziemlich lange warten dürfen.


Hochhaus - Sa 19.04.14 13:54

user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:

Worüber du dir eher Sorgen machen solltest ist die Zeit, die es braucht um alle Elemente zu durchlaufen, das dauert je nach Leistung des PCs schon bei 1 Million Elemente eine kleine Weile, bei 500 Millionen wirst du wahrscheinlich ziemlich lange warten dürfen.


Das habe ich bei meinem Quadratwurzelprogramm (hier im Forum) schon gemerkt !


Hochhaus