![]() |
XY-Graph, Speicheroptimierung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Signaldarstellung (/Forum-Signaldarstellung) +---- Thema: XY-Graph, Speicheroptimierung (/Thread-XY-Graph-Speicheroptimierung) |
XY-Graph, Speicheroptimierung - eg - 30.07.2007 09:40 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 XY-Graph, Speicheroptimierung - jg - 30.07.2007 10:53 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 XY-Graph, Speicheroptimierung - eg - 30.07.2007 11:03 ' schrieb:Hallo, Eugen, Nicht schlecht, sogar sehr gut mit einem Nachteil: man kann zur Laufzeit nicht sagen wie viele Daten man sehen möchte. Oder doch? eg XY-Graph, Speicheroptimierung - jg - 30.07.2007 11:12 ' 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 XY-Graph, Speicheroptimierung - Lucki - 30.07.2007 11:30 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. |