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 

Was für Nachteile haben Lokale Variablen



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!

17.12.2007, 09:49 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2007 09:55 von rolfk.)
Beitrag #11

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Was für Nachteile haben Lokale Variablen
' schrieb:Oliver Frank hat das sehr schön und kurz und knapp ausgedrückt.

Abgesehen von diesem Aspekt haben lokale Variablen und Globale noch in grösserem Masse, zwei grundlegende technische Probleme. Da LabVIEW inherent multithreading ist muss jeder Zugriff auf eine lokale/globale Variable geschützt sein. Das könnte durch komplettes Locking geschehen während der Lebensdauer eines Drahtes der von einer solchen Variablen kommt, aber würde dadurch die parallele Ausführung des Programms schwer einschränken bis ganz unmöglich machen. Deshalb hat LabVIEW dafür entschieden um bei jedem Zugriff auf so eine Variable eine komplette Kopie davon anzulegen. Das ist für Skalarwerte keine Katastrophe aber sobald man da ein multi-Megabyte Array hineinstellt ist es eine garantierte Methode um das Programm dahinkriechen zu lassen. Alles was ich dazu sagen kann ist: selber schuld wenn jemand das so macht.

Das gravierendere Problem ist meines Erachtens aber die Möglichkeit um Raceconditions zu verursachen die schwer zu debuggen sein können. Sobald auf eine globale oder lokale Variable an mehr als einem Ort geschrieben werden kann, sind solche Race-Conditions immer gleich um die Ecke potentiel anwesend. Und das Gemeinste ist dass es durch die quasi-parallele Ausführung von LabVIEW Nodes und die Unvorhersagbarkeit davon in welcher Reihenfolge diese ausgeführt werden, manchmal funktionieren kann und durch minimalste A"nderungen am VI, die eine Recompilation des VIs verursachen plötzlich nicht mehr.

Zitat:Wenn das mit dem Verleiten halt nicht immer so schön wäre ... (Überlegt euch mal es gäbe in LV noch einen goto. Ja, selbst der wird noch bei objektorientiert benutzt.)

Goto in C ist nicht grundsätzlich falsch. Aber wenn es für etwas anderes als frühzeitige Beendung eines Codeabschnittes gebraucht wird, dann ist es immer eine Indikation dafür, dass der Programmierer von saubererem Programmieren keinen Schimmer hat.

try/catch als Exception handling ist ja eigentlich auch nicht so viel anders, nur etwas mehr formalisiert.


Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Was für Nachteile haben Lokale Variablen - rolfk - 17.12.2007 09:49

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Lokale Variablen eliminieren / Signale Zusammenfassen Philipp841 8 5.222 30.09.2019 09:51
Letzter Beitrag: Philipp841
  Wie kann man Lokale Variablen sauber verpacken? Tobzn 10 7.801 04.03.2018 12:02
Letzter Beitrag: IchSelbst
  Lokale Variable galilio 5 4.852 09.02.2017 22:20
Letzter Beitrag: Trinitatis
  Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen lumaxo 7 6.464 19.03.2015 17:49
Letzter Beitrag: lumaxo
Question Lokale Variablen wie in textbasierten Sprachen nutzen RobBoss 5 5.377 28.05.2014 11:59
Letzter Beitrag: Kiesch
  Lokale Variable in while-Schleife auslesen Io1610 6 7.322 26.05.2014 15:57
Letzter Beitrag: Io1610

Gehe zu: