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 

Ausfuehrungsprioritaeten/Speicherallokierung in/von LabVIEW



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!

29.09.2005, 21:32
Beitrag #1

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Ausfuehrungsprioritaeten/Speicherallokierung in/von LabVIEW
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!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Gehe zu: