|
dualsbiker |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 06.09.11
|
|
|
|
Wohnort: Wildau
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 07.09.2011, 12:21
Titel: Out of Memory
|
|
Hallo, bin neu hier, und hab schon ein Problem bei dem ich nicht weiter komme. Hab mich auch schon anderswo belesen aber keine Lösung gefunden. Ich nutze die Befehle fopen und fread um eine Binärdatei einzulesen. Die erste Datei war über 200MB groß und es kam immer wieder der Fehler "Out of Memory". Nun hab ich das selbe mit einer kleineren Binärdatei versucht, weil ich dachte es liegt an der Größe der Datei. Aber Pustekuchen. Obwohl die Datei jetzt nur noch ein Zehntel der Größe bekomme ich den Fehler "Out of Memory".
Fällt einem von euch was dazu ein ?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.09.2011, 19:37
Titel:
|
|
Hallo,
poste doch bitte den verwendeten Code.
Was du selbst probieren kannst: die Größe der Datei weiter verkleinern und schauen, wie groß die Variablen in MATLAB werden.
Grüße,
Harald
|
|
|
dualsbiker |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 06.09.11
|
|
|
|
Wohnort: Wildau
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 07.09.2011, 20:06
Titel:
|
|
Hey hey, also ich hab in zwischen folgendes herausgefunden ... selbst mit einem super duper PC konnte er die Dateien nicht laden. Problem, die meisten Programme haben bei 32bit nur eine geringe maximale Variablen-Größe, mein 64bit-Server zu Hause öffnet die Dateien ohne Probleme. Sobald ein Faktor (Betriebssystem, verwendete Software) nur 32bit hat, klappt das nicht. Ich hab mich damit jetzt einfach abgefunden. Da es sich um meine Diplomarbeit handelt, die ich im November abgeben muss, willl ich da auch garnicht so viel Zeit investieren. Zu Hause klappt es, das reicht mir. Also danke für bisheriges.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.09.2011, 21:37
Titel:
|
|
Hallo,
daran alleine sollte es nicht liegen. Ich habe auch auf einem 32bit-PC schon mit Variablen mit 100 und mehr MB gearbeitet.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.09.2011, 00:00
Titel:
|
|
Hallo dualsbiker,
Ein 32-Bit-Matlab kann mit Variablen bis zur Größe von 2.1GB umgehen. Bei einer Filegröße von 200MB könnte eine Umwandlung von UINT8 zu DOUBLE 8*200MB belegen. Das ist zwar möglich, aber der Speicher istr offensichtlich bereits belegt.
Gruß, Jan
|
|
|
dualsbiker |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 06.09.11
|
|
|
|
Wohnort: Wildau
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 08.09.2011, 06:28
Titel:
|
|
Und wie kann ich diesen belegten Speicher wieder frei machen ? Gibt es die Möglichkeit in den Matlab-Einstellungen den Speicher zu erweitern ?
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 08.09.2011, 11:31
Titel:
|
|
Hallo dualsbiker,
Nicht mehr benötigten Speicher kann man mit dem Befehl CLEAR wieder freigeben - siehe "help clear".
Konkretere Tipps können wir geben, wenn Du die relevanten Code-Abschnitte postest. Meistens ist es viel hilfreicher erst gar nicht so viel Speicher zu belegen, denn das Freigeben von Speicher ist ebenfalls zeitaufwändig. Z.B. ist es extrem ineefizient, Arrays ohne Pre-allocierung wachsen zu lassen:
Obwohl am Schluß nur 100'000*8 Bytes belegt sind, werden während des Programmlaufes PROD(1:100000)*8 Bytes reserviert und kopiert. Der Speicher wird zwar automatisch wieder freigegeben. Es kann aber dennoch ein OUT-OF-MEMORY auftreten, wenn der zur Verfügung stehende Speicher erschöpft ist.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|