LabVIEWForum.de
Speicher voll - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Speicher voll (/Thread-Speicher-voll)

Seiten: 1 2


Speicher voll - Santos L. Helper - 08.08.2011 10:18

Hallo!

Ich habe ein kleines Problem, was eigentlich nur zwei Arrays betrifft. Die Arrays haben jeweils eine Größe von 5000 Werten. Wenn ich jetzt das eine Array in das andere einfügen möchte kommt immer der Fehler "Speicher voll" oder "Nicht genügend Speicher zum abschließen der Operation. Sind die Arrays zu groß und LabVIEW kann sie nicht verarbeiten? Obwohl ich mir das eigentlich nicht vorstellen kann.
Weiß jemand, was das Problem ist und wie ich es beheben kann?


RE: Speicher voll - Takuro - 08.08.2011 10:28

Du könntest versuchen, den Array 2 stückweise in Array 1 hinzuzufügn. Dann siehst du ob es wirklich am Speicher liegt oder ob du vielleicht einen Fehler im BD hast.

Ansonsten lade doch mal das entsprechende Code-Segment hier hoch.

Grüße,

Takuro


RE: Speicher voll - GerdW - 08.08.2011 11:01

Hallo Santos,

kann es sein, dass du aus zwei 1D-Arrays mit je 5000 Elementen ein 2D-Array mit 25Mio Elementen erstellst, obwohl du nur ein 1D-Array mit 10k Elementen haben willst?


RE: Speicher voll - Santos L. Helper - 08.08.2011 11:01

Ich glaube nicht, dass es an meinem VI liegt.
[Bild: C:\Users\Anja\Desktop\Bachelorarbeit\LabView]
Das Problem hatte ich zumindest schon mehrmals auch in anderem Zusammenhang nicht nur beim Einfügen.
Ich habe auch gerade festgestellt, dass der selbe Fehler kommt, wenn ich das VI mit den ganzen Werten in den Arrays speichern will. Bzw. kommt dann zusätzlich noch die Meldung " LabVIEW Speicherfehlercode 10: Standard-Datenraum".
Es scheint mir tatsächlich, als wäre das für LabVIEW eine zu große Datenmenge.
Das mit dem einzeln anhängen hat auch nicht funktioniert.


RE: Speicher voll - GerdW - 08.08.2011 11:10

Hallo Santos,

kannst du das Bild auch noch anhängen?


RE: Speicher voll - Santos L. Helper - 08.08.2011 11:22

Ich hoffe das hat jetzt geklappt.
[Bild: C:\Users\Anja\Desktop\Bachelorarbeit\LabView]
Sorry. Jetzt aber


RE: Speicher voll - GerdW - 08.08.2011 12:49

Hallo Santos,

um ein Element am Ende eines Arrays anzuhängen oder zwei Arrays zu verknüpfen, könnte man natürlich einfach BuildArray verwenden...

Aber der Hauptfehler bleibt:
Dein Konstrukt als auch BuildArray müssen, um Elemente "hintendran" anhängen zu können:
- erst einen neuen, größeren Speicherblock anfordern
- den Inhalt des alten Array hineinkopieren
- das neue Element/Array ebenfalls hineinkopieren

Man benötigt also immer Speicherplatz für die beiden Originaldatensätze sowie zusätzlich einen freien Speicherblock, in dem beide Datensätze Platz haben. Und das kann schneller knapp werden als man denkt... Und wenn du jetzt auch noch anfängst, die Elemente des zweiten Array einzeln anzuhängen, machst du das Ganze eher noch schlimmer!

Und dein kleines Bild zeigt ja nicht, wo du sonst noch so den Speicher fragmentierst!


RE: Speicher voll - Santos L. Helper - 10.08.2011 13:40

Das heißt also zusammengefasst, dass meine Datensätze tatsächlich zu groß sind und ich da eigentlich nichts machen kann?
Na gut das hatte ich befürchtet.
Vielen Dank ersteinmal!


RE: Speicher voll - GerdW - 10.08.2011 13:43

Hallo Anja,

nein, so würde ich das nicht zusammenfassen.
Leider kann man von deinem Minibildchen nicht auf die komplette Anwendung schließen (und nähere Angaben zur HW hast du auch nicht gemacht), aber: 2mal 5000 I32-Werte benötigen gerade mal ~40kB - das sollte einen modernen PC nicht aus den Schuhen hauen...

(Auch wenn da mal jemand behauptet hat "Mehr als 640kB benötigt doch niemand!" Smile )


RE: Speicher voll - Santos L. Helper - 11.08.2011 10:07

Also meine Anwendung besteht zunächst aus nichts weiter als dem Einfügen der Arrays. Ich hatte das nur mal rausgenommen und in einem extra VI ausprobiert, um zu gucken woran es liegt. Es ist schon richtig, dass das im Endeffekt Teil einer größeren Anwendung ist, aber wenn das schon nicht so im kleinen funktioniert.
Mir ist allerdings gerade klar geworden, dass ich da nen absoluten Denkfehler hatte und es sich nicht um 4000 sondern um
8 000 000 Werte pro Array handelt Sad
Ich war da wohl mit meinen Gedanken ganz woanders als ich das geschrieben hab. Sorry .Da sieht die Sache wohl nen bisschen anders aus, dass er das locker schaffen sollte. Oder?