INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Auslastung durch Anzeige von Daten glätten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

13.01.2011, 16:23
Beitrag #1

Oskimo Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
-
de


Deutschland
Auslastung durch Anzeige von Daten glätten
Hallo zusammen,
Ich hab ein UI mit ca. 150 Anzeigeelementen die möglichst 2 mal die Sekunde geupdatet werden sollten. Durch das Update der Werte ensteht für diese kurze Zeit eine hohe CPU Auslastung. Ich hatte vor diesen Ausschlag zu glätten und die Anzeigeelemente nacheinander dauerhaft zu updaten.
Das Problem ist nun, dass ich nicht weiß, wie ich die einzelnen Elemente updaten kann, da sie sich als Array in einem Cluster befinden. Wenn ich nun diesem Cluster einen Wert zuweise werden sofort alle Elemente geupdatet. Wie kann ich auf ein einzelnes Element des Ausgabeclusters zugreifen? Ich hatte mir schon überlegt, ob ich nicht eine Referenz auf ein Element innerhalb des Arrays innerhalb des clusters erhalten kann. Ich bin aber mit dem Ansatz nicht so weit gekommen : /

LabView 8.6
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.01.2011, 20:15 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2011 20:15 von schrotti.)
Beitrag #2

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Auslastung durch Anzeige von Daten glätten
150 Elemente sind eigentlich kein Problem. Lad bitte das VI hoch, da liegt etwas im Argen.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2011, 22:10
Beitrag #3

Oskimo Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2010

8.6
-
de


Deutschland
Auslastung durch Anzeige von Daten glätten
Das VI hab ich jetzt nicht griffbereit. Ich habe aber identifiziert, dass die CPU Auslastung ausschließlich aus der Oberfläche kommt. Das heißt, wenn ich zum Beispiel den Teil, bei dem die Daten in das cluster der Oberfläche kopiert werden nur jede Sekunde ausführe, kriege ich jede Sekunde einen Peak von 30% bis 40% CPU Last. Dabei muss man sagen, dass es sich hierbei um einen P4 1.8GHz handelt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 08:20 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2011 10:52 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Auslastung durch Anzeige von Daten glätten
' schrieb:Das Problem ist nun, dass ich nicht weiß, wie ich die einzelnen Elemente updaten kann, da sie sich als Array in einem Cluster befinden.

Zu diesem Teil Deiner Frage: Auf dem Frontpanel mit rechter Maustaste auf das Element im Cluster klicken und Eigenschaftsknoten "Wert" erstellen:
   
Leider nur sind Eigenschaftknoten viel langsamer als lokale Variable oder die Elemente selbst. Aber probieren geht über studieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 10:46
Beitrag #5

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Auslastung durch Anzeige von Daten glätten
Warum soll denn der Peak geglättet werden?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 11:14 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2011 11:14 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Auslastung durch Anzeige von Daten glätten
' schrieb:Warum soll denn der Peak geglättet werden?
Lass mich mitraten. Mein Tipp ist:
Es sollen 10 Anzeigeelemente nicht alle zugleich alle 0.5sec aktualisiert werden, sondern alle 50 ms eines, bis alle 10 durch sind.
Das Dumme ist, daß der Begriff "glätten" anderweitig fest belegt ist. Von "glätten" sollte man in diesem Kontext nicht sprechen. Damit sind Missverständnisse vorprogrammiert. Man ist aber hier in Bezug auf Sprachverhunzung im allgemeinen und skurrile Terminologie im Besonderen einiges gewohnt, so daß das schon gar nicht mehr auffällt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 16:06 (Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2011 00:10 von unicorn.)
Beitrag #7

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Auslastung durch Anzeige von Daten glätten
@Lucki
Habe ich genauso verstanden, wie Du es beschrieben hast.

Anders formuliert:
Warum sollen die Anzeigeelemente nicht auf einmal aktualisiert werden? Nur damit der Peak im Verlauf der CPU-Auslastung verschwindet oder gibt es dafür noch andere Gründe?

Schließlich verschwindet der Peak in der CPU-Auslastung auch vom Bildschirm, wenn man den Taskmanager schließt.

Und was ist, wenn der Code zum Verteilen der Aktualisierung zusätzliche CPU-Leistung benötigt?

Ich sehe da noch kein Problem in dem Peak.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2011, 11:02 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2011 12:45 von BNT.)
Beitrag #8

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
Auslastung durch Anzeige von Daten glätten
Hi

wenn viele Indikatoren/Controls mit Hilfe von Eigenschaftsknoten aktualisiert werden sollen, sollte die Frontpanel-Aktulisierung verzögert werden.

1. Eigenschaftsknoten mit Klasse VI auf das Blockdiagramm, die Eigenschaft Panel auswählen.
2. Die Panel-Referenz an einen weiteren Eigenschaftsknoten verdrahten und die Eigenschaft DeferPanUpdts selektieren und auf True setzen.
3. Nach der Aktualisierung der Controls/Indikatoren DeferPanUpdts wieder auf False setzen.

Damit wird die Zahl der Thread-Wechsel zwischen GUI und Blockdiagram auf ein Minimum reduziert.

Das direkte Schreiben auf Indikatoren wird, wenn man es nicht absichtlich anders konfiguriert hat, von LabVIEW asynchron durchgeführt, und stellt normalerweise kein Performance Problem dar.

Gruß Holger

Sorry, wegen des Fehlers im VI-Snippet. Ich hab's korrigiert.


Angehängte Datei(en) Thumbnail(s)
   

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2011, 11:26
Beitrag #9

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Auslastung durch Anzeige von Daten glätten
' schrieb:Damit wird die Zahl der Thread-Wechsel zwischen GUI und Blockdiagram auf ein Minimum reduziert.

Der umgekehrte Weg, das ganze VI oder ganze Teile der Applikation in den UI-Thread zu legen bringt mitunter auch eine spürbare Entlastung bzw. verminderte den Threadwechsel.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2011, 11:28
Beitrag #10

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
Auslastung durch Anzeige von Daten glätten
Du solltest in dem Screenshot im dritten Rahmen DeferPanUpdts auf False setzten.

Gruß Richard

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: