LabVIEWForum.de
CPU Auslastung - Druckversion

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

Seiten: 1 2 3 4


CPU Auslastung - Agenth - 30.04.2015 06:55

Hallo Forenmitglieder,

ich habe ein Programm geschrieben, indem über "Axial Communication Interface" eine Verbindung zu einem Motor hergestellt wird, der auch angesteuert werden kann.
Dort ist ein Dauerlauf programmiert, in dem der Motor vorgegebene Bewegungen hintereinander durchführt.
Dabei messe ich Werte wie Kraft, Drehmoment und Drehwinkel (Verarbeitung über 2 Queue Funktionen) und speichere sie in bestimmten Abständen als .lvm und jeweils 2 Plots von Diagrammen ab.

Schaue ich nun auf meine CPU Auslastung, steht diese bei mehr als 80%, was definitiv nicht sein sollte.
Könnt ihr mir Ratschläge geben, wie man prüfen kann woran dies liegt? Ich verwendet sehr viele FGV (funktionale globale Variablen), kann es daran liegen?

Ich danke euch für die Hilfe!


RE: CPU Auslastung - GerdW - 30.04.2015 08:04

Hallo Agenth,

Zitat:Schaue ich nun auf meine CPU Auslastung, steht diese bei mehr als 80%, was definitiv nicht sein sollte.
Hast du von einem HexaCore 5 Kerne ausgelastet? Smile

Zitat:über "Axial Communication Interface" eine Verbindung zu einem Motor hergestellt wird
Was soll das sein?

Zitat:Verarbeitung über 2 Queue Funktionen
Mit Queues schiebt man nur Daten von A nach B, aber "verarbeitet" wird da nichts…

Zitat:Könnt ihr mir Ratschläge geben, wie man prüfen kann woran dies liegt?
Du kennst das Problem: Kein VI (oder wenigstens aussagekräftige Bilder), keine Lösung…

Zitat:Ich verwendet sehr viele FGV (funktionale globale Variablen), kann es daran liegen?
Bei korrekter Programmierung: Nein.

Tipps:
- Wenn man wissen will, welcher Programmteil für die hohe CPU-Last verantwortlich ist, dann nutzt man die Disable-Struktur. Damit kommentiert man Programmteile aus und schaut, wann sich etwas an der CPU-Last tut.
- Andere Möglichkeit: wenn man mehrere parallel laufende subVIs aufruft, schaut man sich das aufrufende VI mit Highlight-Debugging im Step-Modus an. So kann man jedes subVI einzeln starten und sieht, bei welchem subVI die CPU-Last in die Höhe geht…


RE: CPU Auslastung - jg - 30.04.2015 08:06

Kann man an Hand der Info, die du lieferst, nicht sagen. Glas2
Könnte alles Mögliche sein, z.B. ungebremste Schleifen, zu häufiges Aktualisieren von Plots, zu vielen Daten im Plot etc. pp.

Gruß, Jens


RE: CPU Auslastung - Agenth - 30.04.2015 11:00

(30.04.2015 08:04 )GerdW schrieb:  Hast du von einem HexaCore 5 Kerne ausgelastet? Smile
Nicht drauf geachtet, hab nur die extrem hohe Prozentzahl gesehen und angefangen zu zweifeln Tongue

Zitat:Was soll das sein?
Seitens des Motors gibt es eine Bibliothek, die zur Verfügung gestellt wurde. Sie dient dazu, die Schnittstelle zwischen Motor und LabView herzustellen.

Zitat:Mit Queues schiebt man nur Daten von A nach B, aber "verarbeitet" wird da nichts…
Das tue ich auch, sorry. Dachte es könnte evtl. am Buffer der Queues liegen....

Zitat:Du kennst das Problem: Kein VI (oder wenigstens aussagekräftige Bilder), keine Lösung…
Wahre Worte.

Zitat:Tipps:
- Wenn man wissen will, welcher Programmteil für die hohe CPU-Last verantwortlich ist, dann nutzt man die Disable-Struktur. Damit kommentiert man Programmteile aus und schaut, wann sich etwas an der CPU-Last tut.
- Andere Möglichkeit: wenn man mehrere parallel laufende subVIs aufruft, schaut man sich das aufrufende VI mit Highlight-Debugging im Step-Modus an. So kann man jedes subVI einzeln starten und sieht, bei welchem subVI die CPU-Last in die Höhe geht…
Das werde ich mal austesten. Danke!

(30.04.2015 08:06 )jg schrieb:  Kann man an Hand der Info, die du lieferst, nicht sagen. Glas2
Könnte alles Mögliche sein, z.B. ungebremste Schleifen, zu häufiges Aktualisieren von Plots, zu vielen Daten im Plot etc. pp.
Schleifen sind ungebremst, Verzögerungen halfen jedoch nicht.
Das Diagramm ist durchgehend am aufzeichnen, jedoch werden die Daten wieder jedes mal bei Diagrammaktualisierung genullt.

Ich versuche mein Bestes, um es euch anschaulich zu machen. Bitte um Rücksicht.


RE: CPU Auslastung - GerdW - 30.04.2015 11:43

Hallo Agenth,

Zitat:Schleifen sind ungebremst, Verzögerungen halfen jedoch nicht.
Schleifen sollten immer durch irgendein Elemente gebremst werden - sei es eine der Wartefunktionen, sei es durch DAQmxRead, sei es durch Warten auf Kommunikationspartner.
Ausnahme: du hast eine Rechenschleife, die über ein Array iteriert…
Und es hilft natürlich nicht, nur in einer Schleife eine Wartezeit einzubauen, wenn parallel laufende Schleifen weiterhin ungebremst die CPU zum Glühen bringen…

Zitat:Das Diagramm ist durchgehend am aufzeichnen, jedoch werden die Daten wieder jedes mal bei Diagrammaktualisierung genullt.
Hmm
Wieso "nullst" du andauernd? Oder was verstehst du unter "nullen"?


RE: CPU Auslastung - Agenth - 30.04.2015 13:27

(30.04.2015 11:43 )GerdW schrieb:  Hmm
Wieso "nullst" du andauernd? Oder was verstehst du unter "nullen"?
Sorry etwas falsch ausgedrückt. Ich nulle einmal damit ich sicher bin dass dort auch nichtsmehr drinsteht an alten Werten. Danach springt die Case struktur in False und dort geschieht nichts.


RE: CPU Auslastung - NoWay - 04.05.2015 08:56

Hast du auf dem Frontpanel Grafiken abgelegt?
In der Vergangenheit war dies in einem meiner Programme ein gravierendes Leistungsproblem, da die Grafik ständig neu geladen wurde. Grafik entfernt => Leistung ok.


RE: CPU Auslastung - Agenth - 04.05.2015 10:37

(04.05.2015 08:56 )NoWay schrieb:  Hast du auf dem Frontpanel Grafiken abgelegt?
In der Vergangenheit war dies in einem meiner Programme ein gravierendes Leistungsproblem, da die Grafik ständig neu geladen wurde. Grafik entfernt => Leistung ok.
Ja, 2 Diagramme.... sind aber notwendig Sad


RE: CPU Auslastung - jg - 04.05.2015 14:04

Ein wenig Offtopic2
Bei NoWay ging es IMHO wirklich um Grafiken/Bilder. Vor allem, wenn in LabVIEW etwas übereinander gelegt wird (Graph vor ein Bild) dann frisst das gerne Ressourcen.
Schlechte Erfahrungen gibt es auch mit Arrays mit Elementen aus der Silver-Palette...

Gruß, Jens


RE: CPU Auslastung - NoWay - 04.05.2015 14:51

(04.05.2015 14:04 )jg schrieb:  Ein wenig Offtopic2
Bei NoWay ging es IMHO wirklich um Grafiken/Bilder. Vor allem, wenn in LabVIEW etwas übereinander gelegt wird (Graph vor ein Bild) dann frisst das gerne Ressourcen.
Schlechte Erfahrungen gibt es auch mit Arrays mit Elementen aus der Silver-Palette...

Gruß, Jens

Das ist korrekt. Man beachte den feinen Unterschied zwischen "Graph" und Grafik Wink