INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Speicherallozierung - 1D/2D/3D-Arrays



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.08.2009, 11:43 (Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2009 11:45 von unicorn.)
Beitrag #2

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Speicherallozierung - 1D/2D/3D-Arrays
' schrieb:Ich habe schon Probleme mehr als 250 Bilder mit einer Kamera der Auflösung 320x256 Pixel mit 3D-Arrays aufzunehmen (Speicherüberlauf). LV handled alles was über 1 Dimension hinaus geht einfach "schlecht". Im Prinzip weiß kaum jemand das er damit Speicher allokiert. LV macht es einem also leicht Speicher zu reserviren, aber lässt einem diesen nicht wieder einfach so freigeben. Ich arbeite also immer mit 1D Arrays in LV.

Vor allen Dingen wird der Speicher als hintereinanderliegender Speicher gebraucht, so dass auch schon mal "recht kleine" Felder nicht angelegt werden können. Wird das Array an ein SubVI überreicht, so wird der Speicher noch mal gebraucht um die Daten zu kopieren. Hierzu gibt es bei NI geeignete Dokumente die das beschreiben. Um längere Arrays im Speicher haben zu können (z. B. 600 Bilder mit 658 X 496 Bildpunkten) bedarf es ein paar Tricks. Ich habe dazu kein 3D Array angelegt sondern ein Array (mit 600 Frames) von einem Cluster mit einem 2D-Array (von 658 x 496 Bildpunkten). Jetzt legt LV die Bilddaten nicht mehr hintereinander weg in den Speicher, sondern reserviert für jedes einzelne Bild einen eigenen Block, die irgendwo im Speicher sein können. Zusätzlich ist das ganze Array in einer While-Schleife mit Shift-Register untergebracht und ich greife per Index nur noch auf einzelne Bilder zurück.

Beim Rücksprung aus einem SubVI kann man von LV eine Speicherfreigabe anfordern: Application control > Memory Control > Request Deallocation.vi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Speicherallozierung - 1D/2D/3D-Arrays - unicorn - 10.08.2009 11:43

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Auswahl eines Arrays anhand des Wertes eines zweiten Arrays treffen alan 2 4.591 19.02.2015 16:12
Letzter Beitrag: alan
Bug Arrays... immer wieder Arrays nurso 6 7.507 15.08.2014 10:39
Letzter Beitrag: Lucki
  Array of Cluster(Arrays) nach Cluster(Concatenate Arrays) rasta 7 9.774 18.12.2008 12:33
Letzter Beitrag: rasta

Gehe zu: