| |
|
|
Christof Neuß | Hallo,
beim Einlesen einer CSV-Datei kommt es zu dieser Fehlermeldung. Die Datei ist in der Tat sehr groß (>500 MB). Wo ist denn hier die Grenze? In der Hilfe habe ich nichts konkretes dazu gefunden.
Danke und Gruß. |
|
|
| |
|
|
|
RGH | Die Grenze für den Speicher, der durch DIM für eine Bereichsvariable angefordert werden kann, ist abhängig vom Specherausbau des jeweiligen Rechners und der aktuellen Verwendung durch das Betriebssystems. Auch 4 GB RAM garantieren nicht, dass zu jeder Zeit 500 MB am Stück frei verfügbar sind.
Bei solch großen Dateien würde ich empfehlen, diese entweder in mehreren "Portionen" einzulesen (Freigabe des Speichers nicht vergessen) oder gar seriell als Textdatei zu verarbeiten, wobei letzteres natürlich etwas länger dauert.
Gruß Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.10.2011 ▲ |
|
|
|
|
Christof Neuß | Hallo Roland,
danke. Für mich als (Nahezu-)Laie eine wichtige Information.
Ich hatte die Vorstellung, dass durch die dynamische Speicherverwaltung mit Auslagerungsdatei (keine Ahnung, ob das wirklich so heißt) nahezu keine Speicherbegrenzung (es sein denn, der Plattenspeicher geht aus) mehr unter Windows existiert. Mehr Arbeitsspeicher würde dann also "nur" die Verarbeitung beschleunigen, aber nicht für eine (physische) Grenze sorgen.
Wenn ich Dich richtig verstanden habe, ist es aber so, dass zumindest für einige Aktionen, tatsächlich ausreichend freier, zusammenhängender Arbeitsspeicher zur Verfügung stehen muss.
Danke und Gruß |
|
|
| |
|
|
|
Christof Neuß | Ich muss das leider nochmal aufgreifen...
Ich habe einen Rechner mit 16 GB Arbeitsspeicher, von denen - lt. Taskmanager - nur ca. 40 % in Gebrauch sind. Wenn ich jetzt eine größere Datei (ca. 100 MB) per Blockread einlesen will oder auch aus einer SQLite-Datenbank eine größere Abfrage (über 100.000 Datensätze) gleich in eine Datei schreiben möchte [ db("slSQLExec",DB&,"Select...",2) ], bekomme ich die Fehlermeldung:
Exception EOutOfMemory in Modul .... bei 0001B51D. Zu wenig Arbeitsspeicher.
Das kann doch irgendwie nicht sein, oder? Was mache ich falsch?
Danke und Gruß
Christof |
|
|
| |
|
|
|
Jörg Sellmeyer | Taste dich doch mal ran, bis wohin es funktioniert. Roland schrieb ja oben "zusammenhämngender Speicher". Es kann also sein, dass du jede Menge frei hast aber eben zerstückelt. |
|
|
| |
|
|
|
H.Brill | Ich würde auch mal vermuten, daß da viel zerstückelter Arbeitsspeicher vorhanden ist.
Wenn du den Windows Scripting Host installiert hast, kannst du auch mal gezielt Speicher freigeben.
Einfach mal im Editor folgendes eingeben :
FreeMem=Space(64000000)
und als FreeMem.vbs speichern. Dann einfach auf die Datei im Explorer doppelt klicken. Das gibt dir dann 64 MB Speicher am Stück frei.
Ist evtl. mal einen Versuch wert. Jedenfalls, Schaden anrichten tut es ja nicht. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 19.09.2018 ▲ |
|
|
|
|
RGH | Wie wäre es mit einem Beispiel-Dreizeiler, der das Problem demonstriert? |
|
|
| XProfan X4Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 19.09.2018 ▲ |
|
|
|