Autor Beitrag
Hochhaus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: Fr 18.04.14 18:29 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Hochhaus
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Hochhaus
Hochhaus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: 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