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 

Performance-Frage: Große Arrays in Cluster-Schieberegister



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!

26.07.2010, 10:54
Beitrag #11

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
' schrieb:@abrissbirne: Hm, das könnte sein. Wobei SeBas Lösung genau das macht, wenn ich das richtig sehe.

Stimmt schon. Hab aber auch nicht behauptet, dass die Lösung das Non+Ultra ist.

Ich hab nur "dynamic Array Size" zwischen deinen Zeilen gelesen... und neugierig wie ich bin, wollt ich halt wissen ob/wie's funktionieren kann.
Und da ich solche Dinge gerne Teile, hab ichs halt auch hochgeladen.


Also lass den Quatsch lieber und benutz nur den Index Counter, das Replace Array und beleg dein maximal großes Array vorher mit NaN.
Das erste NaN kannst du ja mit 1D-Array durchsuchen finden.


Wobei ich mich dann frage, wenn das Array so groß ist, dass der RAM nicht mehr reicht... klappts ja sowieso nicht. Laufzeit hin oder her.
Natürlich vorrausgesetzt, LV/WinDoof w/e entsorgt die ungebrauchten Teile und räumt ab und zu mal auf? Macht es das? k.A.


Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.07.2010, 11:10
Beitrag #12

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
Fürn Fixed Sized Puffer würde ich Named Queues mit fester Größe und Vorallozierung nehmen. Sind flexibel und schnell. Je nach gusto auch Unnamed Queues mit eigener Referenzverwaltung. Durch die Queuefunktionen bekommt man Anhängen, Pufferfüllstand, Überschreibschutz und Flush am Ende quasi für umme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 11:54
Beitrag #13

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
' schrieb:Fürn Fixed Sized Puffer würde ich Named Queues mit fester Größe und Vorallozierung nehmen. Sind flexibel und schnell. Je nach gusto auch Unnamed Queues mit eigener Referenzverwaltung. Durch die Queuefunktionen bekommt man Anhängen, Pufferfüllstand, Überschreibschutz und Flush am Ende quasi für umme.
Yup, so mach ich es auch immerWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2010 11:58 von Matze.)
Beitrag #14

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
Ich dachte mir, falls eine Messung doch mal länger dauern sollte oder der Puffer zu klein vorbelegt wird, dass dann kein Fehler auftritt und das Array automatisch vergrößert wird.
Wobei ich die max. Array-Größe wie folgt berechnen kann: Rate [Hz] * Timeout[s]Smile

Ob Windows aufräumt, weiß ich nicht. Später sollte das ganze auch auf einem cRIO lauffähig sein.

Named Queues muss ich mir erst mal ansehen. Damit habe ich noch nichts gemacht.
Soll der Queue-Puffer dann für die Messwertspeicherung sein, also die Arrays ersetzen oder wie ist das gemeint?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2010, 12:29
Beitrag #15

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
Ja die Messwerte sind dann die Elemente in der Queue. Ohne die Anwendung genau zu kennen, würde ich als Datentyp der Queue DBL (skalar) vorsehen und dann ggf. mehrmals Enqueue aufrufen um das Array reinzuschreiben.
Musst halt aufpassen, daß du nicht versuchst mit -1 timeout in die Queue reinzuschreiben wenn sie voll läuft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 11:10
Beitrag #16

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
' schrieb:Ja die Messwerte sind dann die Elemente in der Queue. Ohne die Anwendung genau zu kennen, würde ich als Datentyp der Queue DBL (skalar) vorsehen und dann ggf. mehrmals Enqueue aufrufen um das Array reinzuschreiben.

Mal ne Frage: Der Vorteil am BuildArray ist ja der, dass man sich um irgendwelche Speichergrößen keinen Kopf machen muss, LV allokiert von alleine. Klar, die Nachteile sind bekannt...(Array-Kopien).

Wenn ich aber ein wirklich großes Array habe (ich hab hier ne kontinuierliche Abtastung mit 1,25 MS/s für mindestens mal 2-3 Sekunden, aber eben zeitlich nicht genau spezifizierbar, dass hängt ein bisschen von den Umgebungsbedingungen am Prüfstand ab...bis halt ein "Trigger" kommt!)...wie geht man da dann mit Queues um? Wenn ich da jeden Wert einzeln mit "Enqueue" schreibe...das frisst mir doch meine Anwendung auf, oder?

Wie würdet ihr vorgehen?

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.12.2010, 12:49
Beitrag #17

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
Hallo Achim,

man muss ja nicht jeden Wert einzeln in die Queue schieben - 32k-Blöcke tun's doch auchSmile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 15:34 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2010 15:35 von Lucki.)
Beitrag #18

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
Seitdem ich festgestellt habe, daß die Funktion "In 1D-Array rotieren" sauschnell ist (- im Gegenatz zu dem, was man da mutmaßen könnte -), sind bei mir komplizierte Ringpufferstrukturen mit Indexzeigern usw. ad acta gelegt. Ebenso auch die hier vorgeschlagene Verwendung von Queues als Rinpuffer-Konstrukt.
Einfaches, ausbaubares Beispiel:
Lv86_img
Sonstige .vi  Ringpuffer.vi (Größe: 25,96 KB / Downloads: 256)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 20:01
Beitrag #19

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
' schrieb:die Funktion "In 1D-Array rotieren" sauschnell ist
Schnell ist die Funktion schon, nur wo liegt der Speicher der damit rotiert wird?
FGVs oder nackte SR sind von der Skalierbarkeit halt recht eingeschränkt.
Flach durchverdrahtet bzw. in größere Datenstrukturen gepackt, ist mitunter schwierig ohne unnötige Kopien zu realisieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 22:26
Beitrag #20

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Performance-Frage: Große Arrays in Cluster-Schieberegister
' schrieb:Schnell ist die Funktion schon, nur wo liegt der Speicher der damit rotiert wird?
FGVs oder nackte SR sind von der Skalierbarkeit halt recht eingeschränkt.
Flach durchverdrahtet bzw. in größere Datenstrukturen gepackt, ist mitunter schwierig ohne unnötige Kopien zu realisieren.
Mag alles sein, nur benutze ich die Funktion als Rinpuffer für graphische Anzeigen. Da habe ich es nicht mit so großen Datnstrukturen zu tun, und deshalb interessiert mich die Speicherverwendung nicht sonderlich. Ein Diagramm hat typischwereise 1000 Pixel, mehr Datenpunkte sind nicht darstellbar. Wer riesenhafte Datenmengen nicht vor der Visualisierunge entsprechend reduziert, ist selbst schuld wenn er Probleme bekommt. (Hier kann man manches entgegenhalten, z.B. wenn man das Diag hinterher stark zoomen will. Na dann mal los)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Elemente Cluster in Cluster ansprechen simcum 3 2.585 02.10.2023 10:49
Letzter Beitrag: th13
  Verwendung Schieberegister de_la_questa 2 2.760 04.01.2021 17:26
Letzter Beitrag: GerdW
  Probleme mit Performance (Berechnungen und Grafik) catbull 5 3.880 21.07.2018 10:13
Letzter Beitrag: IchSelbst
  Performance beim Betrieb über WLAN Heber 9 4.823 22.08.2017 14:28
Letzter Beitrag: Heber
  Schieberegister Initialisierung mit Array => Not a Number Roland 7 7.393 03.07.2017 15:58
Letzter Beitrag: Roland
  Element in Cluster of Array of Cluster ausblenden R.Fuertig 4 6.449 26.09.2016 07:47
Letzter Beitrag: GerdW

Gehe zu: