LabVIEWForum.de
Speicherproblem mit IMAQ? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Speicherproblem mit IMAQ? (/Thread-Speicherproblem-mit-IMAQ)



Speicherproblem mit IMAQ? - Der_Schorsch - 15.01.2009 13:29

Hallo alle miteinander,

nachdem ich hier beim umeinanderlesen noch nix gefunden habe, hoffe ich dass einer von euch einen Geistesblitz hat, der mir helfen könnte. Und zwar habe ich folgendes Problem:

Innerhalb einer For-Schleife grase ich ein 2-D Array aus einem Cluster ab. In jedem Cluster steckt eine x und y Komponente die ich dann benutze um an dieser Stelle in meinem übergebenen Bild einen Algorithmus losrattern zu lassen. In dem Algorithmus wird ein Harris-Corner Detektor umgesetzt, wobei ich jedoch um die Faltungen "Inplace"-Strukturen verwende. Ich extrahiere dazu aus dem Bild immer den Teilbereich um den Punkt als Array. Jedoch wenn ich meinen Arbeitsspeicher beobachte, füllt jeder Durchlauf den Arbeitsspeicher um geschätzte 3MB. So werden bei jedem Bild ca. 300-400MB angehäuft was natürlich dann zu Problemen führt...

[attachment=16150]

Hat jemand auf die Schnelle vielleicht einen Rat?


Speicherproblem mit IMAQ? - jg - 15.01.2009 14:23

Hmm
Die Inplace-Struktur verhindert meines Wissens nicht komplett, dass neuer Speicher verwendet wird. Ich denke auch nicht, dass das von deiner Cluster-Arrays kommt, denn 3 MB pro Durchlauf, das ist schon viel. Könnte es nicht viel eher sein, dass dein Bild kopiert wird? Du hast da die Bild-Refnum aufgesplittet, und die geht nur in das "Ecken-VI" rein und nicht wieder raus. Vllcht wird da eine Kopie angelegt.

Außerdem IMHO sollte die Inplace-Struktur eher so eingesetzt werden:
[attachment=16152]

Gruß, Jens


Speicherproblem mit IMAQ? - Der_Schorsch - 15.01.2009 14:35

Hi,

da wird keine Ref auf das Bild rausgeführt, da das zugehörige VI zum extrahieren auch keinen Ref-Ausgang besitzt.

Gibt es einen weg zu überprüfen ob da eine Kopie angelegt wird?


Speicherproblem mit IMAQ? - IchSelbst - 15.01.2009 14:45

An den indizierten Array-Ausgängen wird mit jedem Schleifendurchfang neuer Speicher alloziert! Versuche, die Indizierung durch vorbesetzte Arrays und Schieberegister zu umgehen.


Speicherproblem mit IMAQ? - IchSelbst - 15.01.2009 14:51

Du kann die Indizierungen direkt durch Schieberegister ersetzen und in den Schleifen mit "Array indizieren" und "Indexelement ersetzen" arbeiten. Die Inplace-Strukturen nutzen hier gar nichts - siehe bei Jens G.


Speicherproblem mit IMAQ? - Der_Schorsch - 15.01.2009 15:11

' schrieb:Du kann die Indizierungen direkt durch Schieberegister ersetzen und in den Schleifen mit "Array indizieren" und "Indexelement ersetzen" arbeiten. Die Inplace-Strukturen nutzen hier gar nichts - siehe bei Jens G.

Danke für die Tipps!

Aber leider haben sie nicht zum Erfolg geführt Sad

Suche jetzt eine Möglichkeit den Speicherzuwachs einem VI zuordnen zu können um den Schurken dann identifizieren zu können


Speicherproblem mit IMAQ? - gottfried - 16.01.2009 09:02

' schrieb:Danke für die Tipps!

Aber leider haben sie nicht zum Erfolg geführt Sad

Suche jetzt eine Möglichkeit den Speicherzuwachs einem VI zuordnen zu können um den Schurken dann identifizieren zu können
Einfach nach jeder Schleife und jedem SubVI den restlichen Speicher ausgeben - und schon hat man den Täter

Gottfried