Entwickler-Ecke
Sonstiges (Delphi) - Out of Memory???
Janoschka - Fr 23.08.02 14:38
Titel: Out of Memory???
Kann es sein, dass es eine Maximale Länge für Strings gibt?
wenn ja - was ist die maximale größe und wie kann ich sie umgehen bzw. vergrößern?
Delete - Fr 23.08.02 15:20
Delphi starten,
String eintippen und den Cursor drauf,
F1 drücken,
Hilfe lesen ...
... und nachdenken :-)
SMI - Fr 23.08.02 19:01
TurboPascal, Strings. short Strings sind 255 Zeichen lang,
long/huge Strings für Win9x Systeme sind maximal 2GB, bei NT sind sie normalerweise 2TB, können aber auch nur 4GB groß sein.
Die maximale Stringlänge ist der maximal, "en Block", addressierbare Speicherbereich, grob gesagt. Daher können Win95 Systeme auch keine Dateien größer 2GB erstellen, NT packt dagegen, laut Dokumentation, 2TB Dateien. Die Länge eines Strings zu vergrößern ist daher auch nicht sinnvoll, was nützt es mir wenn ich 4GB im Speicher hätte, jedoch nur 2GB Dateien schrieben kann?
SMI
Arakis - So 25.08.02 02:33
Bei so großen Datenmengen wäre es wohl sinnvoller, einen TMemoryStream zu verwenden, glaub ich jedenfalls.
Bis dann
SMI - So 25.08.02 03:13
Bei größeren Datenmengen ist der Umweg über die Festplatte an schnellsten und effektivsten. Mit dem API Befehlen ReadFileEx und WriteFileEx kann man gezielt Positionen anspingen und diese dann in den Buffer lesen, also man brauch nicht erst die ganze Datei in den Speicher zu verfrachten, wenn man schon im vorhinein weiß, das bei einer 2GB Datei an Position "100 MB" 2MB gelesen werden müssen. Somit spart man Speicher, schont die Swapdatei und somit auch die Festplatte(n). Ist zwar etwas umständlich, da man keine formschön verpackten Klassen hat und erforder einen exakten Datei-Header, aber zahlt sich bei der Performance erheblich aus. Bevor von den 400 MB, die ich in den Speicher geladen habe eh 200 MB in der Swapdatei landen, kann ich gleich eine 400 MB Datei auf die Platte schreiben und nur meinetwegen die 8MB an denen ich wirklich schaffe im Speicher haben wodruch das Zeitaufwendige swapen total entfällt.
SMI
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!