LabVIEWForum.de - Ausfuehrungsprioritaeten/Speicherallokierung in/von LabVIEW

LabVIEWForum.de

Normale Version: Ausfuehrungsprioritaeten/Speicherallokierung in/von LabVIEW
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ausfuehrungsprioritaeten:
Unter VI-Properties -> Execution -> Priority
Hier koennt Ihr zwischen verschiedenen Prioritaetsstufen INNERHALB von LabVIEW auswaehlen! Innerhalb deshalb, weil sich das lediglich auf parallel ausgefuehrte VIs handelt und nicht um die Prioritaet von LabVIEW im gesamten System!
Um die Prioritaet von LabVIEW im System zu erhoehen muesst Ihr den Task Manager starten, auf den Tab Prozesse wechseln, nach LabVIEW.exe suchen, mit der rechten Maustaste anklicken und im Submenue "Prioritaet" diese veraendern (es ist nicht empfehlenswert die Prioritaet auf "Echtzeit" zu stellen - wens interessiert, der kanns gerne mal austesten :-))

Reentrant Execution:
Dieser Punkt befindet sich ebenfalls in den VI Proteries unter Execution!
Man kommt doch des oefteren nicht umhin mehrere gleiche SubVIs in einem Programm zu verwenden und so es der Zufall will, liegen diese auch noch genau zur gleichen Zeit zur Abarbeitung an...
In diesem Fall kann LabVIEW, nachdem es sich um ein und das selbe SubVI handelt, zuerst das eine und dann das andere SubVI abarbeiten - das benoetigt somit an dieser Stelle die doppelte Zeit!
Aktiviert man jedoch die Option "Reentrant Execution" werden beim Kompilieren des Programms bereits fuer jedes gleiche SubVI eine eigene Instanz im Speicher angelegt und somit ist eine quasiparallele Ausfuehrung moeglich -> und man spart Zeit :-)

Speicherallokierung:
LabVIEW hat den unangenehmen Nachteil - merkt man speziell bei sehr großen Datenmengen - dass die Software nur in der Lage ist, kontinuierlichen Speicher zu verwalten.
D.h. dass der LabVIEW Prozess nur Speicher an einem Stueck verwalten kann -> es ist LV nicht moeglich z.B. 100MB auf X Portionen aufzuteilen, sondern diese muessen direkt hintereinander im Speicher liegen!
Es ist daher sehr ratsam (unter der Voraussetzung, dass man mit sehr großen Datenmengen zu rechnen hat), auf While Schleifen zur Gaenze zu verzichten! LabVIEW weiß bei While Schleifen nicht, wie oft diese durchlaufen werden und muss somit bei jeder Iteration neuen Speicher frei machen - tritt dann der Fall ein, dass der Speicherbereich den LV zz verwendet voll ist, muss die komplette Datenmenge im RAM umgespeichert bzw. adressiert werden und das nimmt maechtig Zeit in Anspruch! For Schleifen mit Auto-Indizierung mittels bzw. durch ein Array sind ebenfalls nicht wirklich hilfreich!
Referenz-URLs