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 

Diagramm zeichnen



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!

24.12.2012, 00:58 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2012 01:00 von blubblub.)
Beitrag #1

blubblub Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2012

2010
-
kA



Diagramm zeichnen
Hallo,

ich wollte mal austesten, wie lange es dauert ein Diagramm Punktweise zu füllen und zwar
direkt, über Eigenschaftsknoten, lokale Variablen und globale Variablen.

Dazu erzeuge ich zunächst ein Array und dann lese ich das Array Punktweise in die Diagramme ein.

Was mich etwas verwundert ist, dass die Diagramme, die direkt, über lokale Variablen und globale Variablen
gefüllt werden, selbst bei 100.000 Werten nur einen Bruchteil einer Sekunde benötigen,
während es über den Eigenschaftsknoten Minuten dauert.

Habe ich irgendwo im Programm einen Fehler gemacht?
Ich hab zwar schon gehört das Eigenschaftsknoten langsam sind, aber gleich so langsam??

Zudem wundert es mich, dass 100.000 Werte nahezu sofort bei den anderen drei Varianten gezeichnet werden,
so als wären es Graphen und nicht Diagramme.


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.12.2012, 09:06 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2012 09:21 von Lucki.)
Beitrag #2

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Diagramm zeichnen
Ich hatte auch mal die Unterschiede zwischen direkten V., lokalen V., globalen Variablen und Eigenschaftsknoten untersucht. Deine Ergebnisse einigermaßen kompatibel mit meinen: Der Zugriff auf lokale Variablen dauerte kaum länger als der direkte Zugriff, der Zugriff auf eine globale Variable dauert unwesentlich länger, hingegen dauerte der Zugriff über den Eigenschaftsknoten "Wert" etwa 200 mal länger. Bei Dir ist es allerdings noch viele länger, das ist schon arg, aber die Messmethode ist korrekt. Da kann man nur einmal mehr sagen: Finger weg vom Daueraufruf von Eigenschaftsknoten in zeitkritischen Schleifen.

Dass ein Diagramm so schnell beschrieben wird,liegt an der in LV überall eingebauten Intelligenz. Wenn Du also denkst, die Update-Geschwindigkeit müsste durch das relativ langsame Zeichnen der Graphik ausgebremst werden, dann unterschätzt eben diese Intelligenz. Das Lesen der Daten und die graphische Darstellung derselben sind unterschiedliche interne Tasks mit unterschiedlicher Priorität. Und wenn die Updaterate der Daten höher ist als die mögliche Updaterate der eigentlichen Graphik, dann werden pro Graphik-Update nicht ein, sondern entsprechend viele Plotpunkte upgedatet. (Im Laufe der Jahre ist LV immer schneller geworden. Es kann sein, dass das bei älteren Versionen von LV noch nicht so schön funktioniert hat wie jetzt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.12.2012, 09:17
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Diagramm zeichnen
Ja, Eigenschaftsknoten sind langsam, denn:
- Sie laufen auf jeden Fall im UI-Thread.
- jedes Setzen einer Eigenschaft oder des Werts erzwingt (!) ein Frontpanel-Update.

Bei Setzen per Terminal oder per lokaler Variable wird ein FP-Update nicht zwingend durchgeführt, deshalb geht es da recht flott.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.12.2012, 10:14
Beitrag #4

blubblub Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2012

2010
-
kA



RE: Diagramm zeichnen
Okay, danke für die Antworten.
Ich werd mir noch ein paar Gedanken zu dem Thema machen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.12.2012, 11:19
Beitrag #5

blubblub Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2012

2010
-
kA



RE: Diagramm zeichnen
Ich komme noch nicht so ganz mit den Begriff User Interface Thread zurecht.

Soweit ich es verstehe gibt es zwei Arten von Threads. Die Kernel Threads und die User Threads.
Wenn in diesem Forum von User Interface Threads gesprochen wird, ist das ein synonymer Begriff zu User Threads?

Nun wird hier oft geschrieben, dass Diagramme im User Interface Thread gezeichnet werden.
Was wird denn alles im User Interface Thread bzw. User Thread abgearbeitet.
Und was wird nicht in einem solchen Thread abgearbeitet?
Wird alles was nicht im User Interace Thread abgearbeitet wird, im Kernel Thread abgearbeitet?

Warum ist das so schlecht, dass Diagramme im User Interface Thread abgearbeitet werden?
Und wenn das so schlecht ist, warum werden Diagramme nicht im Kernel Thread abgearbeitet?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.12.2012, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2012 12:20 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Diagramm zeichnen
Hallo blubblub,

du darfst hier nicht LabVIEW-interne und OS-TasksThreads durcheinander schmeißen! LabVIEW selbst ist multi-threaded, was erst mal nichts mit den Aufgaben des OS zu tun hat...

LabVIEW selbst teilt seine Aufgaben "internen" Threads zu, einer davon übernimmt alle Aufgaben, die das UI (Zeichnen etc.) betreffen: dieser spezielle Thread ist der User Interface Thread. Da alle Aufgaben, die dieser Thread übernimmt, gern mal einen Thread-Wechsel erfordern (z.B. Schreiben einer PropertyNode), erhälst du immer eine Speed-Penalty. Außerdem kann es vorkommen, das dieser Thread Aufgaben (langsam) nacheinander abarbeitet, wenn er mal überlastet sein sollte, was sich in unschönen Verzögerungen deines UI äußern kann.

P.S.: Dein Vergleich von "direkt" und "globale Variable" ist im Grunde identisch. Beim Zeichnen des Diagramms ist es unerheblich, wo die Daten herkommen. Der eine Lese-Zugriff auf die globale Variable spielt da kaum eine Rolle...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.12.2012, 13:24
Beitrag #7

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Diagramm zeichnen
... und wenn Dich das Thema richtig interessiert, dann kann Dir folgenden Kurs empfehlen:
http://sine.ni.com/tacs/app/overview/p/a...7/id/1588/
Da werden solche Dinge auch abgehandelt.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.12.2012, 14:49 (Dieser Beitrag wurde zuletzt bearbeitet: 24.12.2012 14:56 von blubblub.)
Beitrag #8

blubblub Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2012

2010
-
kA



RE: Diagramm zeichnen
Okay danke für die Antworten.

Der Kurs wäre sicher interessant und genau das richtige für mich, aber die Preise sind für mich viel zu hoch.
Ich muss mal schauen, ob ich im Internet irgendwelche Erläuterungen dazu finde.

Wie sieht es mit dem Schreiben von Daten in einer Datei aus?
Ist das ebenfalls Zeitintensiv? Das wird vermutlich aber nicht vom User Interface Thread abgearbeitet, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Rechteck zeichnen Azzuen 2 4.904 03.07.2014 12:40
Letzter Beitrag: Azzuen
  Graph zeichnen stoi 18 14.920 20.06.2013 09:37
Letzter Beitrag: jg
  X-Y Graph, in den Hintergrund zeichnen Hubert R. 11 9.469 20.09.2012 13:50
Letzter Beitrag: Hubert R.
  XY Graph zeichnen LV-Starter123 14 16.438 07.11.2011 22:22
Letzter Beitrag: LV-Starter123
  Signalverlauf händisch im Graph zeichnen? BsaiboT 7 10.098 01.03.2010 08:25
Letzter Beitrag: BsaiboT
  ROI's in Intensityplot zeichnen Labviewtourist 2 4.081 02.06.2008 16:16
Letzter Beitrag: Labviewtourist

Gehe zu: