LabVIEWForum.de
Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position (/Thread-Hohe-Prozessorauslastung-nach-Festlegen-von-Fenstergroesse-Position)

Seiten: 1 2 3


Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 11.06.2012 14:24

Hallo Problemlöser :-)

Ich hänge gerade an einem Prozessorauslastungsphänomen, welches ich mir absolut nicht erklären kann.

Seit einiger Zeit suche ich nach dem Performancekiller in meinem Programm, ohne ihm so recht auf die Spur zu kommen. Auch eine Umstellung der Struktur auf die Queued State Machine brachte keinen Erfolg.

Nun habe ich also nacheinander die aufgerufenen SubVIs desaktiviert (mittels Diagramm Disabled Strukture) und mir die Prozessorlast angesehen. Durch die Desaktivierung des VIs im Anhang (init_FrontPanel, im *.zip-File zusammen mit dessen Sub-VIs) sank dann die Prozessorlast von 80 - 100 % auf unter 5 %. Das Witzige daran ist, dass dieses VI nur ein einziges Mal während der Initialisierung aufgerufen wird, danach nie wieder. Trotzdem scheint es einen nachhaltigen Einfluss auf die Prozessorauslastung zu haben.

Der Sinn dieses VIs besteht darin, beim Start des Programmes einmalig die Fenstergröße und -position des FPs festzulgegen.

Kann mir jemand erklären, was dieses VI anstellt, dass der Prozessor danach so überfordert ist? Ich bin für jeden Hinweis dankbar.



Gruß,

Soean

lv11_img


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - jg - 11.06.2012 19:51

Nur ein Schuss ins Blaue, da man auf Grund der VIs nicht erkennen kann, wie genau sie in deinem Projekt aufgerufen werden:

Ist das Frontpanel des Aufrufers schon geöffnet, wenn du diese VIs aufrufst? Ich kann mich da dunkel an möglichen Ärger bei solchen Property-Nodes erinnern, wenn das Frontpanel zum Aufrufzeitpunkt noch gar nicht sichtbar ist.

Und ein zweiter Schuss ins Blaue: Kommst du irgendwie mit Einstellungen in Konflikt, die du direkt in den VI-Eigenschaften deines Aufrufers gesetzt hast?

Gruß, Jens


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 12.06.2012 08:07

Hallo Jens,

danke schon einmal für deine Schüsse ins Blaue :-)

Das Front-Panel des VIs, welches seine Referenz "This VI" an das Sub-VI übergibt, ist schon geöffnet. Es handelt sich um eine mit dem Applikation-Builder erzeugte Applikation. Hätte ich vllt. oben schon erwähnen sollen.

Ich habe keine Einstellungen gefunden, welche mit den in dem VI gesetzten Positionen in Konflikt kommen könnten. Hast du/habt ihr vllt noch eine Idee, welche von den Einstellungen das sein könnten? Ich habe die aktuellen, möglicherweise relevanten VI-Properties als Bilder mit angehängt.

Gruß,

Soean


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 12.06.2012 09:15

Update:

Ich habe mir ein kleines neues VI gebastelt, um die Auswirkungen von init_FrontPanel auf die Prozessorlast nachzustellen. Es lies sich kein Unterschied in der Rechenleistung erkennen.

Also habe ich auch in meinem Programm das Spielchen widerholt. SubVI Disabled, Enabled...und keinen Unterschied mehr in der Prozessorlast feststellen können...ich stehe also wieder am Anfang meiner Suche, und es ist scheinbar doch nicht dieses VI...trotzdem vielen Dank an euch, besonders dich Jens!


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - macmarvin - 12.06.2012 10:22

Moin,

mein Schuss ins Blaue wäre, daß sich die abgekündigte Property "magisch" falsch verhält. Hast du mehrere Panes in deinem Programm, aber nicht im TestVI?
[attachment=40141]


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 12.06.2012 10:28

Hallo macmarvin,

nein, es gibt nur ein einziges Pane.


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - macmarvin - 12.06.2012 10:38

Und ändert sich etwas, wenn du die veraltete Property durch die Empfohlene ersetzt?


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 12.06.2012 11:18

Ich habe das entsprechende SubVI durch das VI im Anhang ersetzt. Eine signifikante Änderung war leider nicht festzustellen.

Aber inzwischen bin ich mir wie gesagt nicht einmal mehr sicher, ob es wirklich dieses VI ist, das Probleme bereitet. Ich suche...


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - Soean - 12.06.2012 14:38

Sooo....ich fürchte, es kann doch nur noch an der Visualisierung liegen...Wenn ich die Applikation starte und im Vordergrund laufen lasse, habe ich eine Prozessorauslastung >80%. Wenn ich die Applikation minimiere, und sie nur noch im Hintergrund läuft, sinkt die Auslastung auf unter 10%. Irgendetwas ist doch da seltsam.

Spricht das für ein überladenes FP? Ich habe euch Screen-Shots vom FP angehängt. Kurze Erläuterung dazu: Der große Teil (quasi oben links) ist eine Tab Control, welche je nach Zustand des Programmes unterschiedliche Dinge, heißt unterschiedliche Seiten, darstellt. Rechts gibt es ein dekoratives Element (Raised Box) mit ein paar Zustandsanzeigen für die Schleifen sowie ein paar Bedienelemente. Unten gibt es eine weitere Raised Box mit weiteren Anzeigen zu den Schleifen, wie aktuelle States, Schleifeniterationen und Schleifenzykluszeit.

Für jede Seite des Tab-Controls habe ich einen Screenshot angehängt.

Kann ein Computer (P4 2,8 GHz, 1 GB RAM, WinXP 32 Bit) mit so ein Bisschen Visualisierung überfordert sein?
und die 6. Seite des Tab Controls.


RE: Hohe Prozessorauslastung nach Festlegen von Fenstergröße/-Position - jg - 12.06.2012 14:45

(12.06.2012 14:38 )Soean schrieb:  Kann ein Computer (P4 2,8 GHz, 1 GB RAM, WinXP 32 Bit) mit so ein Bisschen Visualisierung überfordert sein?
Mag schon sein. Kommt darauf an, wie oft du FP-Elemente setzt (mehr als 10-20 Hz bekommt kein User mit), und wie du das machst - soll heißen, ob du z.B. dauernd Werte und Eigenschaften per PropertyNodes setzt. Das ist so ziemlich der schlimmste Performance-Killer, den es gibt, da jeder Aufruf einer PropertyNode einen Wechsel in den UI-Thread + ein Update des FP erzwingt!

Gruß, Jens