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 

Berechnung mit CLF-Knoten 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!

25.01.2008, 10:07 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2008 10:10 von rolfk.)
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Berechnung mit CLF-Knoten schneller?
' schrieb:alles klar ...danke ...mit den exe-Dateien stelle ich auch (fast) keinen Unterschied mehr fest....das hätten sie ja auch irgendwie mal ins Buch reinschreiben können, da wird groß angekündigt, dass es mit der Einbindung des C++-Codes schneller geht ...aber dann kein weiterer Satz warum oder weshalb....nicht so tragitsch aber schön wäre es gewesen ^^...

mfg

LabVIEW selber ist auch ein Compiler. Das was Du im Diagramm zeichnest wird direkt in Maschinencode umgesetzt und dann ausgeführt. In diesem Licht sind die meisten Claims dass LabVIEW prinzipiel langsamer ist als C absolut nicht wahr.
Aber in C kannst Du denn Compiler anweisen um hoch-optimalisierten Code zu erzeugen, LabVIEW optimalisiert auch aber hat durch die Datenfluss-Programmierung ganz andere Bedürfnisse in gewissen Gebieten. Ein C Compiler kann ganz einfach davon ausgehen dass der Code immer linear abläuft und dass wenn etwas parallel ausgeführt werden kann der C Programmierer schon damit Rechnung hält und wenn nicht dann ist es halt Pech gewesen und das Programm schmiert ab oder produziert falsche Ergebnisse.

LabVIEW hat durch die Datenflussprogrammierung inherent parallele Ausführung eingebaut und muss damit zu jedem Zeitpunk Rechnung tragen (und tut das auch extrem gut). Das hat aber auch zur Folge, dass nicht jede Optimalisierung die ein C Compiler durchführen kann für LabVIEW legitim ist. Und manchmal muss LabVIEW sogar extra Code einfügen um Kollisionen von ausführemdem Code zu verhindern. Das kann dazu führen dass der LabVIEW Code langsamer abläuft dann der durch einen hoch optimalisierten C Compiler erzeugten Code. Aber hier sprechen wir in den meisten Fällen über Prozente der Ausführungszeit nicht über Faktoren.

Wo es oftmals falsch geht in LabVIEW ist nicht im erzeugten Code selber, aber in der Verwendung eines suboptimalen Algorithmus im LabVIEW Diagramm oder einer suboptimalen Implementation eines Algorithmus. In C muss sich der Programmierer selber um jedes Byte kümmern dass im Speicher angelegt, verschoben und wieder freigegeben wird. In LabVIEW tut man überhaupt nichts dergleichen. LabVIEW alloziert und realloziert Speicher wann immer das nötig ist für uns. Und Speicherallozierung und Kopieren ist eine sehr langsame Operation im Verhältnis zu anderen Dingen. Wenn also jetzt jemand einen Algorithmus schreibt in dem er in einer Schlaufe mit BuildArray in jedem Durchlauf ein oder mehrere Elemente an das im Schieberegister gehaltene Array anfügt, wird in jedem Schleifendruchlauf dieses Array vergrössert, was fast immer mit einer Neuallokation mit anschliessendem Kopieren der Daten im Speicher und Deallozieren des alten Arrays verbunden ist. So ein Algorithmus ist EXTREM langsam, nicht weil LabVIEW schlechten Code erzeugt, sondern weil der Programmierer schlecht programmiert hat.
Das Problem ist hier eigentlich dass Programmieren in LabVIEW fast zu einfach ist. Man kann ohne überhaupt etwas von Programmierung zu verstehen immer noch ein Programm schreiben das mehr oder weniger das zu tun scheint (mit Nachdruck auf dem scheint) was man eigentlich wollte, auch wenn die Art und Weise wie das getan wird eigentlich katastrophal zu nennen ist.

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


Nachrichten in diesem Thema
Berechnung mit CLF-Knoten schneller? - rolfk - 25.01.2008 10:07

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Fehler 1097 bei Knoten zum Aufruf externer Bibliotheken in CLF-Knoten.vi KingLui 2 7.866 16.09.2014 13:47
Letzter Beitrag: KingLui
  CRC Berechnung: Codebeispiel vorhanden Takuro 6 13.095 01.06.2011 17:17
Letzter Beitrag: Lucki
  Knoten zum Aufruf externer Bibliotheken xtro 4 8.766 28.09.2007 06:32
Letzter Beitrag: rolfk
  Konstruktor-Knoten (Constructor Node), Assemblies erstellen Sapphira 2 8.404 24.09.2004 08:34
Letzter Beitrag: Sapphira

Gehe zu: