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 

virtueller Arbeitsspeicher läuft voll



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!

23.03.2012, 14:09
Beitrag #1

FlorianOtto Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jan 2012

2009
2011
DE



virtueller Arbeitsspeicher läuft voll
Hallo,
ich habe für Arbeit ein IV geschrieben bei dem eine Energie hochgerampt wird und bei jeder Energie 6 Bilder mit einer Pixelfly Kamera gemacht werden. Beid der Ausführung des IV (von 20V bis 400V in 0,25V Schritten) wird der virtuelle Speicher sehr schnell voll und das Programm stürzt ab.

Ich weiß nicht ob es an den Bildern liegt, die gemacht werden, oder ob es an den Dateipfaden liegt bzw. einen Array liegt.

Ich habe schon folgendes versucht zur Problembehebung:

1. den virtuellen Speicher über die Eingabeaufforderung auf maximal gesetzt
2. die Anzeige des Bildes raus genommen
3. alles was die Kamera betrifft in ein SubIV gesteckt und dort explizit die Funktion Flag verwendet (Wenn Flag TRUE ist, wird der Speicher nach der Ausführung des VIs, das diese Funktion enthält, wieder freigegeben.)

Hilft aber alles nix, das Programm macht nach ca. 1h den Speicher voll.

Anbei habe ich euch mal mein IV angefügt. Ich hoffe hier kann mir jemand helfen.


Angehängte Datei(en)
9.0 .vi  LEEDIV_neu2.vi (Größe: 51,17 KB / Downloads: 303)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.03.2012, 14:30
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: virtueller Arbeitsspeicher läuft voll
Jedes IMAQ-Create erzeugt Speicherplatz im RAM für 1 Bild, der aber erst wieder durch ein IMAQ-Close freigegeben wird. Und da wunderst du dich, wenn dir der Speicher vollläuft?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2012, 14:54
Beitrag #3

FlorianOtto Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jan 2012

2009
2011
DE



RE: virtueller Arbeitsspeicher läuft voll
Thx für die schnelle Antwort, ich habe jetz nach dem Speichern einfach die Funktion "IMAQ dispose" drangehauen und es scheint gut zu gehen. Thx!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2012, 07:21
Beitrag #4

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
RE: virtueller Arbeitsspeicher läuft voll
Hallo Jens

(23.03.2012 14:30 )jg schrieb:  Jedes IMAQ-Create erzeugt Speicherplatz im RAM für 1 Bild

so ist das (meiner Meinung nach) nicht. Du kannst in einer Schleife Milliarden von IMAQcreate machen und nichts passiert ... aber nur wenn man immer den selben Namen nimmt. Ich habe aufgehört temporäre Bilder am Anfang eines VIs zu erzeugen und am Ende zu löschen - das braucht viel länger als immer wieder verwenden.

Viele Grüße

Gottfried
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2012, 08:21
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: virtueller Arbeitsspeicher läuft voll
(26.03.2012 07:21 )gottfried schrieb:  Hallo Jens

(23.03.2012 14:30 )jg schrieb:  Jedes IMAQ-Create erzeugt Speicherplatz im RAM für 1 Bild

so ist das (meiner Meinung nach) nicht. Du kannst in einer Schleife Milliarden von IMAQcreate machen und nichts passiert ... aber nur wenn man immer den selben Namen nimmt. Ich habe aufgehört temporäre Bilder am Anfang eines VIs zu erzeugen und am Ende zu löschen - das braucht viel länger als immer wieder verwenden.

Viele Grüße

Gottfried
@Gottfried: Du hast natürlich Recht, wenn derselbe Name beim IMAQ-Create verwendet wird, dann wird kein neuer Speicher angelegt. Das hätte ich genauer schreiben sollen.
Im Bsp-Programm des Fragestellers werden aber dauernd neue Bilder angelegt. Und dann wird zumindest schon mal der Pointer auf ein leeres Bild angelegt. Und selbst das dürfte dir auf Dauer den Speicher vollmüllen.

Allgemein: Referenzen, die man in LabVIEW öffnet, sollte man auch immer schließen.
Dazu gehören nicht nur Vision-Bilder, auch .NET oder ActiveX-Refnums, FileRefnums, etc. pp.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: