Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
30.11.2011, 11:55
Beitrag: #1
VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Hallo VEE'ler,

ich habe ein großes Problem mit meinem VEE Programm. Ich habe ein Steuerprogramm für Klimakammern geschrieben was mit der .net system.datetime.now Funktion Berechnungen und schleifen durchführt. Was passiert ist, dass durch mein Programm der Arbeitsspeicher voll läuft. Dies sind nach ein paar Tagen mehrere GB im Arbeitspeicher. Ich habe absolut keine Ahnung warum dies passiert.
Das ganze steigt so lange an bis ich einen VEE Runtime fatal error bekomme. Siehe Screenshots.

Wenn ich die datetime.now Berechnungen entferne wächst der Arbeitsspeicher nicht mehr so stark.

Ich habe es auf verschiedenen Systemen getestet. Win XP bis Win 7 64 bit. Immer das gleiche. Ich nutze VEE 9.22 Runtime.

Hat jemand eine Idee was das Problem sein könnte?

Danke für eure Hilfe!


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
01.12.2011, 16:31
Beitrag: #2
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Moin,

wahrscheinlich in der .NET Umgebung was unsauber programmiert.
Laut Fehlermeldung würde ich auf zu viele Instanzen schliessen.
Also nur einmal beim allerersten Aufruf die Instanz(en) deiner Funktionen initalisieren.

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2011, 11:18
Beitrag: #3
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Servus,

das hab ich mir auch gedacht mit den Instanzen. Aber ich hab nehm mir nur aus dem VEE System die System.Datetime.Now. Dann müsste er ja bei jedem durchlauf der now eine Instanz intern anlegen? Ich schreib dieses Datum dann in eine Varialbe, addiere z.B. 30 min dazu und vergleiche dann alles im Minutentakt ob der A>B ist. Wenn ja dann überschreibe ich die Variable und addiere wieder 30min dazu... Dadurch frag ich die Kammer alle 30 min ab. Sollte ich die Variable vor dem überschreiben löschen mit delete?

Hab mal einen Teil des Codes angefügt.


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren
02.12.2011, 13:30
Beitrag: #4
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Die now() gibt es ja auch als reine VEE Funktion, probiere die doch einfach mal.
Dann sollte kein Memory Problem auftreten.

Das "Declare time" sollte auch nur einmal beim Progammstart ausgeführt werden.

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2012, 07:45
Beitrag: #5
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Hatte auch ähnliche Probleme mit .Net Einbindungen.
Durch regelmäßigem gebrauch des GC konnte ich dem etwas Herr werden.
--> System.GC.Collect()
sollte vielleicht helfen.

btw: DateTime.Now liefert eine Zeit basierend auf 1.1.1970,
now() liefert eine Zeit basierend auf 1.1.0001.
Diese Nachricht in einer Antwort zitieren
23.02.2012, 09:08 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2012 09:19 von detlef.)
Beitrag: #6
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
So ganz nebenbei moechte ich noch mal darauf hinweisen, dass die aktuelle Zeit auch in dem PING eines ON Cycle Objektes enthalten ist, und mit VEE internen Methoden einfach in alle Formate geaendert werden kann. Man braucht dieses DOTNET dazu nicht. Leigt wohl daran, dass es im Menue so einfach zu erreichen ist.

Aber schaut euch mal den PING beim ON cycle an, und schaut in die Beispielprogramme dazu....
examples/concepts/timetick.vee
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.02.2012, 08:51
Beitrag: #7
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Hi detlef,

ja ist schon klar, es geht auch anders. Aber die system.datetime bietet halt viele tolle Funtionen... Wie die ganze .net Welt. Ich gehe ja mal davon aus, dass wenn die datetime integriert ist, diese auch funtioniert.Dodgy

So wie es ausschaut, hat mein Fehler nichts mit der Datetime zu tun. Habe das Programm auf die alte Variante umgebaut. Also mit (now()) und hatte keine Besserung. Ich habe aber oft den graph mit call (function) aufgerufen ohne wirklich Werte zu schreiben. Dies hab ich verändert im Ablauf... Scheint Besserung gebracht zu haben! Tests laufen noch...

Dann geb ich meine Erkentnisse weiter Shy
@haver

danke für den Tipp mit de GC. Werde ich mal testen!
Diese Nachricht in einer Antwort zitieren
28.02.2012, 11:14
Beitrag: #8
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Eigentlich muesste man in V9 mit dem Debug Menue sehen, was da den Speicher vollschaufelt...
schon mal benutzt ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.03.2012, 09:20
Beitrag: #9
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Hi detlef,

nein noch nicht im laufenden Programm. Nur beim Start die Debug Meldungen. Hast mir einen Tipp wie. Danke
Diese Nachricht in einer Antwort zitieren
29.03.2012, 10:57
Beitrag: #10
RE: VEE Runtime stürzt ab, Arbeitsspeicher läuft voll.
Wenn der VEE Debugger nicht weiterhilft, schau dir mal den Process Explorer an. Auf VEE einschraenken:
u.a. hier:

http://www.heise.de/download/process-explorer.html
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de