LabVIEWForum.de - Graph an Control anschließen VS über locale Variable

LabVIEWForum.de

Normale Version: Graph an Control anschließen VS über locale Variable
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

mir ist beim Optimieren aufgefallen, dass wenn ich ein Graphcontrol direkt anschließe die Bearbeitung länger dauert, als wenn ich die locale Variable des Graphen benutze.

Ich habe mal ein VI gebaut welches dies zeigt. Meine Frage ist warum, eigentlich sollte doch das Control schneller oder mindestens genau so schnell sein wie die locale Variable.

Mfg Nico

Lv85_img
Interessant...
Bei mir lief's mit der lokalen Variable mehr als doppelt so schnell. Vielleicht hat jemand noch 'ne Begründung dafür parat...
Ein Grund könnte sein: das Schreiben der lokalen Variable löst kein zwingendes FP-Update aus! Schreiben in Control IMHO schon. Auf jeden Fall häufiger.

Gruß, Jens
' schrieb:Ein Grund könnte sein: das Schreiben der lokalen Variable löst kein zwingendes FP-Update aus! Schreiben in Control IMHO schon. Auf jeden Fall häufiger.

Gruß, Jens

Hallo,

das Frontpanelupdate könnte ich doch mit dem Property Node "DeferPanUpdts" vom Frontpanel des VI's verhindern. Mache ich dies, ändert sich an den Zeiten nichts.

Was ich auch irgenwie komisch finde, damit sollte man doch eigentlich auch ein bisschen Geschwindigkeit gewinnen.

Gruß Nico
' schrieb:Ein Grund könnte sein: das Schreiben der lokalen Variable löst kein zwingendes FP-Update aus! Schreiben in Control IMHO schon. Auf jeden Fall häufiger.
Das kann man direkt sehen, wenn man - was ohnehin sinnvoll wäre - den Graphen nicht in der ganz inneren Schleife, sondern in der nächsthöheren Schleife updatet. Die Ausführungszeiten sind dann zwar nur noch Sekundenbruchteile. Bei Updatig mit der lokalen Variablen sieht man nur ein einziges Zwischenbild, bei direktem Update sind es viele.
' schrieb:Das kann man direkt sehen, wenn man - was ohnehin sinnvoll wäre - den Graphen nicht in der ganz inneren Schleife, sondern in der nächsthöheren Schleife updatet. Die Ausführungszeiten sind dann zwar nur noch Sekundenbruchteile. Bei Updatig mit der lokalen Variablen sieht man nur ein einziges Zwischenbild, bei direktem Update sind es viele.

Für die Geschwindigkeit zu minimieren ist es natürlich in diesem Fall besser nur Spaltenweise die Daten zum Graphen zu übermitteln. Aber wenn man das Array größer macht tritt auch hier wieder der Fall ein.
' schrieb:Ein Grund könnte sein: das Schreiben der lokalen Variable löst kein zwingendes FP-Update aus! Schreiben in Control IMHO schon. Auf jeden Fall häufiger.

Ich denke auch, daß es mit dem FP Update zusammenhängen kann.
Habe mir die Prozessorlasten bei der Programmausführung zusätzlich angesehen, 100% wenn das Control direkt beschrieben wird, im Mittel ca. 75% wenn die Variable beschrieben wird.
Für mich ein Indiz, das LV zusätzlich beschäftigt ist, das dürfte der FP-Update sein.

Grüße
Andreas
' schrieb:Für die Geschwindigkeit zu minimieren ist es natürlich in diesem Fall besser nur Spaltenweise die Daten zum Graphen zu übermitteln. Aber wenn man das Array größer macht tritt auch hier wieder der Fall ein.
Es ging mir gar nicht darum, Dein VI zu verbesseren - und das war ja auch gar nicht Deine Frage. Es ging darum, die Vermutung von Jens zu untermauern.
Jens hatte übrigens mal einen Eigenschaftsknoten oder Methodenknoten aus seine Zauberkiste geholt, mit der man das fortlaufende Updating des FP hinauszögern konnte. Weiß aber nicht mehr, wie das ging, das wäre hier ideal.
Es ist für mich eine eiserne Regel, das Updating eines Graphen nicht schneller zu machen als das menschliche Gehirn dem folgen kann - max. 10 Mal/s. Im Bedarfsfall verwende ich einen Zwischenpuffer. Diese Regel verletzt Dein VI um viele Größenordnungen.
Bei mir dauert die LV (ca. 5,5 s) länger als direkt (ca. 5 s).

Gruß Markus
Seiten: 1 2
Referenz-URLs