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 

Arrays effizent benutzen



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!

16.06.2010, 11:35
Beitrag #1

pumpkin0 Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Jun 2010

9.0
2008
de


Deutschland
Arrays effizent benutzen
Moien,

ich hätte da ein kleineres Problem mit der Performance. Ich habe eine While-Schleife in der alle 5ms Werte (Warten bis zum nächsten Vielfachen) aus einem DAQmx Task empfangen werden. Aus der Schleife kommt ein autoindexierter Tunnel, also ein Array mit den Messwerten. Abbruch ist angelegt per Button.

Scheinbar mag LabVIEW diesen Aufbau nicht wirklich. Ohne Tunnel läuft das ganze problemlos. Mit dem Tunnel hat die exe Aussetzer: es sind dann nicht 5ms sondern meistens 30 - 45ms.

Meine Vermutung ist dass die Erweiterung des Array bei jedem Schleifendurchlauf das Problem ist (Ich kenne mich eher mit den klassischen Sprachen aus, da wäre es garantiert ein Problem). LabVIEW kann ja nicht wissen wie lange das ganze laufen wird (typischerweise sind es 5.000 - 15.000 Werte). Mit einem vorallokierten Array, lokalen Variablen und Teilarray-ersetzen-durch wird es eher schlimmer.

Also ... wie macht man das richtig?

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.06.2010, 11:39 (Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2010 11:41 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Arrays effizent benutzen
Hallo pumpkin,

"Meine Vermutung ist dass die Erweiterung des Array bei jedem Schleifendurchlauf das Problem ist"
Korrekt.

"Mit einem vorallokierten Array, lokalen Variablen und Teilarray-ersetzen-durch wird es eher schlimmer."
Das Problem bei dieser Vorgehensweise ist die lokale Variable (biste nebenberuflich C-Programmierer? Think Dataflow!). Verwende hier bitte ein Shiftregister und schon "wuppt" dein VI...

Im nächsten Entwicklungsschritt schaust du dir bitte Producer-Consumer-Strukturen an. Bitte danach in den LV Examples suchen...

Edit: Und guckst du hier im "Month of Webcast" (wird ja hinreichend hier im Forum beworbenSmile)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  64bit in LV 32bit benutzen Trinitatis 4 4.027 18.03.2021 11:56
Letzter Beitrag: Trinitatis
  Auswahl eines Arrays anhand des Wertes eines zweiten Arrays treffen alan 2 4.637 19.02.2015 16:12
Letzter Beitrag: alan
Bug Arrays... immer wieder Arrays nurso 6 7.587 15.08.2014 10:39
Letzter Beitrag: Lucki
  wie kann ich einen Programmierten Vi mehrmals in einem Vi benutzen? Mourad 3 3.784 08.05.2013 16:52
Letzter Beitrag: Mourad
  Wert setzen und für "oder" Funktion benutzen Knarrre 2 3.723 19.01.2012 18:59
Letzter Beitrag: Knarrre
  Formeln in LabVIEW benutzen McLovin 20 23.156 31.07.2010 22:01
Letzter Beitrag: Lucki

Gehe zu: