LabVIEWForum.de
Rechnerauslastung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Rechnerauslastung (/Thread-Rechnerauslastung)



Rechnerauslastung - gomark_de - 08.12.2006 06:30

Ich benutze LabVIEW um verschiedene Steuerungsaufgaben zeitbezogen auszuführen. Außerdem
zeichne ich Temperaturkurven auf. Der PC soll 24 Stunden am Tag und das ganze Jahr durchlaufen - ohne Neustart. Die Daten Arrays werden naturlich regelmäßig gelöscht.
Mein Problem nach ca. 12 Stunden steigt die CPU Last auf 100%. Außerdem beansprucht LabVIEW immer mehr Speicher, obwohl die Trends gelöscht werden.
Was muß beachtet werden, wenn der Rechner und LabVIEW ununterbrochen laufen sollen?
Gibt es Tricks um Speicher freizugeben?
Ich habe schon verschieden LabVIEW Versionen getestet, doch daran liegt es nicht. Ist LabVIEW dafür nicht geeignet?


Rechnerauslastung - Dennis.Moser - 08.12.2006 08:05

Hallo,
also LV sollte damit KEIN Problem haben...

sieht so aus, als würde Dein Speicher nicht geleert werden...

Als erstes solltest Du Dein Programm nach mögl. Schwachstellen überprüfen:

Arrays / Queues, die ins UNERMESSLICHE LAUFEN
Lösung: Feste Größe vorgeben (fifo)

Globale Variablen / Lokale Variablen
Lösung: Mögl. auf Variablen verzichten (bzw. reduzieren)

ansonsten LLB mal hochladen... Rolleyes


Rechnerauslastung - IchSelbst - 08.12.2006 09:05

Und Referenzen bzw. Handles von bevorzugt Datenfiles, Tasks etc, die zwar geöffnet werden, aber nicht mehr geschlossen.


Rechnerauslastung - gomark_de - 08.12.2006 09:22

1. Wieso wird der Speicher nicht wieder freigegeben?
2. Ich benutze einige Globale Variablen um einen Datenaustausch mit einem anderen VI zu realisieren. Dies ist notwendig um die E/A Ebene zu bearbeiten. Wieso wird das System durch Globale Variablen negativ beeinflußt? Die Anzahl der Variablen bleibt doch immer gleich. Also müßte der reservierte Speichplatz immer gleich sein oder?


Rechnerauslastung - IchSelbst - 08.12.2006 09:38

' schrieb:1. Wieso wird der Speicher nicht wieder freigegeben?
Weil er als noch in Benutzung gilt. Woher soll LV (respektive der Speichermanager) wissen, dass der Speicher freigegeben werden soll - wenn du z.B. wegen eines Programmierfehlers keine Speicherfreigabe erlaubst.

Das mit den Globalen Variablen ist bei mir noch nicht aufgetreten (obwohl ich gegen alle Vorschrift viele davon habe Tongue) - was aber nicht heißt, dass es nicht doch solche Möglichkeiten gibt. - Schlimm wäre ein Globales Array, das zur Laufzeit vergrößert wird und von dem lokale Kopien angelegt werden (Abzweigung im Datenfluß => Kopie => Speicherverbrauch)


Rechnerauslastung - Y-P - 08.12.2006 13:45

Hallo,

schau Dir mal das an:
http://zone.ni.com/reference/en-XX/help/37...i_memory_usage/

Vielleicht hilft es Dir weiter.Mellow

Gruß Markus