AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

riesengroße Arrays > 2GB

Ein Thema von juelin · begonnen am 2. Jun 2017 · letzter Beitrag vom 6. Jun 2017
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#3

AW: riesengroße Arrays > 2GB

  Alt 2. Jun 2017, 09:56
Eine 32Bit-Anwendung kann übrigens maximal 2 GB Arbeitsspeicher addressieren, mehr geht nicht.
Standardmäßig.
Per PE-Optionen kann man auch 3 bzw. 4GB aktivieren.
Aber selbst damit bleibt die maximale größe des Typs bei 2 GB, aber gibt ja noch anderen Speicherverbrauch im Programm.
Und als letzte Alternative eine 64 Bit-Anwendung.

ABER, in einer 32 Bit-Anwendung ist es schon schwer genug 700MB am Stück zu bekommen.
Stichwort Speicherfragmentierung, da der reservierte Arbeitsspeicher und die geladenen DLLs/EXE verstreut im virtuellen Speicher (RAM) rumliegen.

Und wenn man sowas var frametab: array [1..131072] of tframes; auch noch als lokale Variable verwenden wöllte, dann käme noch dazu, dass diese Variable dann im Stack läge und der ist standardmäßig nur ein paar MB groß.


Das Ding nicht als Array, sondern als verkettete Liste, aber zum Speichersparen vielleicht nicht die elemente verknüpfen, sondern das in "kleineren" Paketen (mehrere kleinere statisches Arrays in einer verketteten Liste oder als mehrdimensionales Array in einem übergeordnetem Array)
Bei deiner Struktur könntest du aber die beiden statischen Arrays in dynamische ändern und schon ist das nicht mehr als ein Stück im RAM, vorallem durch f: array of tfiguren; wird das schon stark aufgeteilt.

Bei der Menge:
* in Dateien auslagern und selber nur den Teil in den RAM holen, der grade nötig ist
* Memory Mapped File (MMF) ... kann man auch ohne Datei komplett im RAM haben, aber icht würde eine Datei empfehlen ... Windows hält dann dennoch viel im Windows File Cache
* Address Windowing Extensions (AWE)
* ...
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Jun 2017 um 09:59 Uhr)
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz