30.04.2015, 06:55
(Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2015 07:06 von Agenth.)
Beitrag #1
|
Agenth
LVF-Gelegenheitsschreiber
Beiträge: 63
Registriert seit: Mar 2015
2010+2013
2015
DE
38***
Deutschland
|
CPU Auslastung
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!
|
|
|
30.04.2015, 08:04
Beitrag #2
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: CPU Auslastung
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?
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…
|
|
|
30.04.2015, 08:06
Beitrag #3
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: CPU Auslastung
Kann man an Hand der Info, die du lieferst, nicht sagen.
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
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.
|
|
|
30.04.2015, 11:00
Beitrag #4
|
Agenth
LVF-Gelegenheitsschreiber
Beiträge: 63
Registriert seit: Mar 2015
2010+2013
2015
DE
38***
Deutschland
|
RE: CPU Auslastung
(30.04.2015 08:04 )GerdW schrieb: Hast du von einem HexaCore 5 Kerne ausgelastet?
Nicht drauf geachtet, hab nur die extrem hohe Prozentzahl gesehen und angefangen zu zweifeln
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.
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.
|
|
|
30.04.2015, 11:43
Beitrag #5
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: CPU Auslastung
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.
Wieso "nullst" du andauernd? Oder was verstehst du unter "nullen"?
|
|
|
30.04.2015, 13:27
Beitrag #6
|
|
|
04.05.2015, 08:56
Beitrag #7
|
|
|
04.05.2015, 10:37
Beitrag #8
|
|
|
04.05.2015, 14:04
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: CPU Auslastung
Ein wenig
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
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.
|
|
|
| |