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 

Dieses Thema hat akzeptierte Lösungen:

Speicher läuft voll mittels .NET-Objekt



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!

14.05.2018, 11:06
Beitrag #1

mc_schleck Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2018

LV 2015 SP1
2005
DE

83301
Deutschland
Speicher läuft voll mittels .NET-Objekt
Hallo Leute,

mit dem angehängten SubVI lese ich einen Teil der Desktops aus. Dies geschieht mit den System .NET Klassen (system.drawing) (den Programmteil habe ich im Netz gefunden). Soweit ich das sehe, werden am Ende alle Objekte geleert und alle Referenzen geschlossen. Nur das Bild wird ausgegeben (und 4 mal I32 und ein Error Cluster). Packe ich dieses SubVI in eine Schleife (und lasse mir das Bild anzeigen über „Serialisierte Pixmap zeichnen“ und „2D-Bild“), läuft langsam der Arbeitsspeicher voll, bis zur Fehlermeldung: „Nicht genügend Speicher zum Abschließen dieser Operation.“ Ich verstehe nicht so ganz warum. Das Bild sollte doch in jedem Schleifendurchlauf durch das neue Bild ersetzt werden. Ist vielleicht doch im SubVI irgendein Objekt nicht richtig geleert worden und füllt so bei jedem Aufruf den Arbeitsspeicher mehr und mehr?

Die LabView Hilfe hat mir nicht wirklich weiter geholfen: Ich sehe zwar im „Profil – Leistung und Speicher → Speicherauslastung“-Fenster das das SubVI viel Speicher braucht (das ist nun mal so bei Bildern), ich sehe aber nicht ob dieser wieder frei gegeben wird. Leider zeigt mir auch dieses Fenster nicht wie groß die .NET-Objekte sind und ob deren Speicher am Ende jedes Aufrufs geleert ist.

Hab auch schon im Netz nach den .NET-Objekten (in C#, VB, usw.) gesucht. Hier ist der Fehler auch bekannt. Es hängt immer daran, dass die Objekte nicht richtig geleert werden oder die Referenzen nicht geschlossen werden. Soweit ich das erkennen kann, wird dies im SubVI aber richtig gemacht.

Zu „Speicher läuft voll“ und Ähnlichen hab ich hier (und im Netz) einiges gefunden aber eben leider nicht im Zusammen mit .NET-Objekten. Ich hoffe daher einer von Euch kann mir hier weiter helfen.

Danke.

Viele Grüße,
Andi


Angehängte Datei(en)
15.0 .vi  ScreenShotV07.vi (Größe: 33,3 KB / Downloads: 396)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2018, 13:03
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Speicher läuft voll mittels .NET-Objekt
Ich kann deine Probleme nicht nachvollziehen.

Das VI sieht gut aus, alle Refnums werden geschlossen.

Sowohl im Desktop Trace Execution Toolkit als auch im "Profile Performance und Memory" Fenster verhält sich dein VI, auch als Sub-VI in einer While-Schleife, vollkommen unauffällig und ohne Speicher-Anstieg.

Zeig mal dein Test-VI, in dem du einen Speicher-Anstieg detektierst.

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
14.05.2018, 15:02
Beitrag #3

mc_schleck Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2018

LV 2015 SP1
2005
DE

83301
Deutschland
RE: Speicher läuft voll mittels .NET-Objekt
Hallo Jens,

im Anhang das Test-Haupt-VI.
In 5 Minuten werden 4 GB Arbeitsspeicher gefüllt. Beobachten tue ich dies mit dem Windows Task-Manager bis eben die Fehlermeldung "Nicht genügend Speicher zum Abschließen dieser Operation" erscheint und das VI beendet wird.

Grüße,
Andi


Angehängte Datei(en)
15.0 .vi  Test.vi (Größe: 10,85 KB / Downloads: 392)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2018, 16:02
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Speicher läuft voll mittels .NET-Objekt

Akzeptierte Lösung

Ich kann deinen Speicheranstieg nachstellen, aber wo genau der herkommt, weiß ich leider auch nicht. Dazu verstehe ich ebenfalls zu wenig von den verwendeten .NET-Aufrufen. Referenz-mäßig sieht alles gut aus, aber irgendwo wird wohl doch Speicher nicht wieder freigegeben.

Aber zum Glück findet Google andere Lösungen:

https://forums.ni.com/t5/Example-Program...-p/3497914

oder mglw. noch besser:
https://forums.ni.com/t5/Example-Program...-p/3518680

Ich hab's mal ganz kurz angetestet, Speicher sah stabil aus.

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
15.05.2018, 08:48
Beitrag #5

mc_schleck Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2018

LV 2015 SP1
2005
DE

83301
Deutschland
RE: Speicher läuft voll mittels .NET-Objekt
Hallo Jens,

Der zweite Link ist ein Volltreffer! Das kann ich für mein Projekt nutzen. Big Grin
Danke.


Grüße,
Andi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Reines COM Objekt ohne ActiveX mit Firmenspezifischen Datentypen einbinden Smarty 4 10.398 09.12.2015 12:42
Letzter Beitrag: rolfk
  Frontpanel mit .NET Objekt (MonthCalendar) hängt elsatobias 9 9.549 07.04.2010 14:09
Letzter Beitrag: elsatobias
  DCOM-Objekt-Erzeugung einer VI in MATLAB Burkart 1 5.647 08.11.2009 16:27
Letzter Beitrag: Y-P
  .Net Picture Objekt Sir Waldi 14 14.399 19.06.2009 08:13
Letzter Beitrag: Sir Waldi
  ActiveX-Objekt Fehler siham 1 5.498 28.05.2008 08:58
Letzter Beitrag: jg
  Speicher läuft hoch Nina 3 9.766 29.09.2007 19:07
Letzter Beitrag: rolfk

Gehe zu: