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 

warum ist die Globale Variable schneller?



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!

03.09.2010, 14:38
Beitrag #1

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
warum ist die Globale Variable schneller?
Hallo zusammen

ich habe folgendes Problem ....

ich habe in einem Vi eine While Schleife die alle 100ms einmal "schleift" ...

da werden Com Ports ausgelesen udn die Dasten Verarbeitet etc ... nun wollte ich diese Daten in eine Art Register speichern und das Register als Notifier jeweil einmal lesen und am ende wenn die Daten drinn stehen wieder schreiben.... andere Vis können sich dann aus dem "Register"-Notifier die Daten rausholne wenn benötigt ...
soweit so gut funktioniert auch ...

Aber...

wenn ich das Register so gross mache wie ich es brauche (1024 Werte) wird das ganze sehr "langsam" ...

ich habe mal ein Test VI erstellt mit dem Ablauf im richtigen VI ohne das ganze drum rum ...

ich hab dann auch mal eine Globale Variable als Test genommen und musste feststellen das die um längen schneller ist ...

ich bin leicht verwirrt ... entweder mach ich was grundlegend falsch .... oder es hat sich was bei der abarbeitung von globalen Variablen bei LV 2010 geändert ... (ich hab jetzt grad nur LV2010 zum testen)


T

Lv10
hier mal das Vi und Snippet ...
   


Sonstige .vi  speedtest.vi (Größe: 19,66 KB / Downloads: 245)

und die globale Variable ...

Sonstige .vi  test.vi (Größe: 5,38 KB / Downloads: 224)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.09.2010, 18:44
Beitrag #2

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
warum ist die Globale Variable schneller?
In LV 9 ist die globale Variable ebenfalls schneller. Aber warum auch nicht? Für so eine Aufgabe würde ich aber niemals einen Notifier oder GloVar verwenden sondern entweder eine FGV oder, wenn unbedingt erforderlich, eine Queue. Die FGV schneidet bei mir mit <1ms am besten ab.

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

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
warum ist die Globale Variable schneller?
Hier hab' ich was interessantes auf meiner Platte gefunden:

Sonstige .zip  Benchmark_Datatransfer.zip (Größe: 133,67 KB / Downloads: 270)

Lv86_img

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
03.09.2010, 19:03 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2010 19:07 von schrotti.)
Beitrag #4

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
warum ist die Globale Variable schneller?
Aber warum Kopien erstellen und Variablen immer neu beschreiben? Verfälscht den Vergleich meines Erachtens erheblich.
   
   
Lv09_img2
Sonstige .zip  Benchmark_Datatransfer_2.zip (Größe: 154,48 KB / Downloads: 263)


Hier der Vergleich:
Alt
   

Mit Shiftregister und Datenfluss
   

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.09.2010, 19:14
Beitrag #5

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
warum ist die Globale Variable schneller?
Bei mir sind das statt 590 ms dann 575 ms. Macht also nicht viel aus.

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
03.09.2010, 19:43
Beitrag #6

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
warum ist die Globale Variable schneller?
' schrieb:Bei mir sind das statt 590 ms dann 575 ms. Macht also nicht viel aus.

Bei was?

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.09.2010, 20:49
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
warum ist die Globale Variable schneller?
Beim Notifier.

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
03.09.2010, 21:03 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2010 21:05 von eg.)
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
warum ist die Globale Variable schneller?
Ich verstehe gar nicht wozu man in einer einzigen Schleife einen Notifier/eine GV braucht. Nimm doch ein Cluster oder Array.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.09.2010, 23:10
Beitrag #9

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
warum ist die Globale Variable schneller?
' schrieb:Beim Notifier.

Gruß Markus
Wenn ich die Referenz und den Fehlercluster nicht verzweige sondern wie im Bild verdrahte halbiert sich bei mir die Ausführungszeit. Bei der Queue ist der Effekt noch wesentlich heftiger. Das liegt aus der Ausführungsreihenfolge, die bei LV-Code leider nicht ersichtlich ist.

1. Dequeue Element wird ausgeführt. Die Queue ist leer, das Primitive wartet.
2. Enqueue Element wird aufgerufen und schiebt ein Element in die Queue.
3. Dequeue Element bricht den Wartevorgang ab, da ein Element zum Auslesen vorhanden ist.

Die Kopien rauben auch mir nur 5 ms, aber der unnötige Wartevorgang raubt 1600 ms und damit über 90 % der gemessenen Zeit.

@eg: Das soll hier hoffentlich nur ein Beispiel sein, aber siehe vi.libUtilityconfig.llb

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

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
warum ist die Globale Variable schneller?
Das ist nur ein Bsp., das die unterschiedlichen Verfahren vergleichen soll.

Gruß Markus

' schrieb:Ich verstehe gar nicht wozu man in einer einzigen Schleife einen Notifier/eine GV braucht. Nimm doch ein Cluster oder Array.

--------------------------------------------------------------------------
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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Globale Variablen Edi70 7 4.488 08.10.2021 17:01
Letzter Beitrag: GerdW
  Boolean als globale Variable ares2013 12 11.363 06.09.2019 13:57
Letzter Beitrag: GerdW
  Übergabe Anzeigeelement zwischen VIs (Referenz/globale Variable?) lipster 1 4.299 03.02.2017 14:27
Letzter Beitrag: GerdW
  Warum ertönt ein BING Hasenfuss 3 3.295 07.07.2015 20:20
Letzter Beitrag: jg
  Frage zur Compilierung, ist .EXE schneller als Start vom Frontpanel? Hasenfuss 1 2.831 30.06.2015 14:51
Letzter Beitrag: jg
  globale Konstanten? Nordvestlys 6 5.921 20.02.2015 09:35
Letzter Beitrag: Nordvestlys

Gehe zu: