LabVIEWForum.de - XY-Graph, Speicheroptimierung

LabVIEWForum.de

Normale Version: XY-Graph, Speicheroptimierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute. Um die Daten auf einem XY-Plot anzuzeigen benutze ich auf dem Bild dargestellte methode (Dank an Jens
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=18889 ). Nun gefallen mir die benutzten Build Array VIs nicht so, weil diese das Array dynamisch reallokieren (glaube ich) und damit die Reccourcen (CPU-Zeit und Speicher) fressen. Wie kann man es noch optimieren?

eg
Hallo, Eugen,

das passt doch genau auf das Ringpuffer-Beispiel von i2dx:

z.B. mal hier verlinkt
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=29521

MfG, Jens
' schrieb:Hallo, Eugen,

das passt doch genau auf das Ringpuffer-Beispiel von i2dx:

z.B. mal hier verlinkt
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=29521

MfG, Jens


Nicht schlecht, sogar sehr gut mit einem Nachteil: man kann zur Laufzeit nicht sagen wie viele Daten man sehen möchte. Oder doch?

eg
' schrieb:Nicht schlecht, sogar sehr gut mit einem Nachteil: man kann zur Laufzeit nicht sagen wie viele Daten man sehen möchte. Oder doch?
Kann ich dir erst mal nicht sagen, wusste auch nur, das dieses Ringspeicher-Bsp. exisitert. Aber geht bestimmt. Musst dich halt mal reindenken.

MfG, Jens
Habe leider das Buch mit dem Lehrbeispiel drin verborgt, das hätte ich dir gern kopiert. Vor Urzeiten habe ich das Beisoiel mal gepostet,
Es funktioniert jedenfalls so:
1. Das Schieberegister wird (statt mit eine Leerrarray) mit einem ausreichend großen Array intitialisiert, mit Nullen drin. Mit der Größe muß man nicht kleinlich sein, jedenfalls so groß daß es immer reicht.
2. Bei jeden Durchlauf wird mit der Funktion "Teilarray ersetzen" der Reihe nach der Index 0,1,2 durch den Wert ersetzt. (Es muß eine Zählvariable inkrementiert werden, die auch ein Schieberegister benötigt)
3. Wenn die gewünschte Anzahl erreicht ist, wird der Array-Bereich, der nur Nullen enthält, weggeschnitten und der Rest verwendet. (Die Information, bei welchem Index die Nullen beginnen, steckt in der Zählvariablen.) Die Zählvariable wird auf Null gesetzt und ein neuer Zyklus kann beginnen.

Im Idealfall ist die Anzahl von Werten immer konstant, und dann kann man natürlich gleich auf die exakte Arraygröße initialisieren und braucht nichts abzuschneiden.
Referenz-URLs