Du hast einen Adressraum von 64^2 (OK, teilweise auch etwas weniger), aber Real hast du maximal
RAM + Auslagerungsdatei.
PS: Das hat man auch schon mit 32 Bit.
Es gibt da Adresswerweiterungen, aber praktisch kannst du das auch einfach mit MMFs (Memory Mapped Files) machen, was aber nicht unbedingt Dateien seien müssen, aber bei 400 GB brauchst du sowieso eine Erweiterung.
MMFs kann man stückchenweise in den Speicher mappen und Windows sorgt da für das Cachen der Datei.
Wenn du einen zusammenhängenden "Stream" hast, dann brauchst du auch bei 64 Bit immenoch einen "zusammenhängenden" Speicherbereich, innerhalb des Virtuellen Speichers der Anwendung.
Vielleicht wäre es also eh besser, wenn du dir überlegst das in kleiner Stücke aufzuteilen.
Vielen Dank für die schnelle Antwort. bei 64^2 meinst Du wahrscheinlich 2^64. Das mit dem
RAM wäre kein Problem. Kommt halt die entsprechende Maschine her. Das Betriebssytem (z. B. Win 8 Pro) kann ja mit den Speichermengen umgehen...
Was genau meinst Du mit Memory Mapped Files? Geht das in Richtung
RAM-Disk? Über sowas habe ich schon seit Jahren nicht mehr nachgedacht. Eleganter wäre natürlich der Memory-Stream... Wie gesagt: Es wäre kein Problem da eine Liste mit Streams zu erzeugen und dann halt den entsprechenden Stream zu berechnen den man gerade für den Zugriff benötigt. Hätte auch den Vorteil, dass man mit mehreren Threads gleichzeitig auf verschiedene Streams zugreifen kann... Man macht dann halt 2 GB Blöcke oder so. Bei 200 Stück sind das dan auch 400 GB... Die Frage ist halt nur ob Delphi da irgendwie motzt bzw. ober der Memeory-Manager von Delphi überhaupt in der Lage ist das zu verwalten...
Vielen Dank nochmal
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)