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 

Geschwindigkeitsproblem: großes array an trigger teilen und sortieren



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!

10.01.2011, 00:19
Beitrag #11

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Ja, die Methode mit dem Build Array.

Die lokale Variable könntest Du durch ein Shift-Register ersetzen. Aber die Performance die Du damit gewinnst ist sicherlich klein gegenüber dem, was Du durch das Überspringen der Berechnung sparst. Also nicht relevant für Dein Problem.

Kannst Du eventuell die Menge der erfassten Daten reduzieren (kleinere Samplerate?)

Kannst Du eventuell die Datenerfassung so triggern, dass Du Dir das umsortieren der Messdaten sparst?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.01.2011, 08:51
Beitrag #12

tinger Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: May 2010

2009
2010
de


Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Die Datenerfassung kann ich nicht so beeinflussen, dass das sortieren überflüssig wird... die Samplerate reduzieren wäre meine NotlösungWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 11:20
Beitrag #13

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Werden die gesamten Daten auch in einer Datei abgelegt? Liegt hier vielleicht die Engstelle?

Wie oft werden denn Deine 6553600 erfasst, sprich wie oft wird Deine Datenerfassung getriggert?

Besteht die Möglichkeit, nur bei jedem zweiten Trigger-Ereignis zu erfassen, oder ist ein kontinuierlicher Datenstrom in 6553600er Blöcken zu erfassen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 11:52
Beitrag #14

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Nach 13 Beiträgen ist es langsam Zeit, daß mal einer den ultimativ überzeugenden Tipp gibt, und dieser ist:
Für das Sortieren die Funktion "1D Array rotieren" verwenden.
OK, das Programmierer-Gefühl sagt, daß so eine Rotation im Array eine zeitraubende Angelegenheit ist. Man sollte sich aber von solchen Vorurteilen nicht leiten lassen, sondern einfach mal die Messergebnisse zur Kenntnis nehmen.
Hier im Beispiel dauert die Rotation eines 6000000-Array gerade mal 3µs:

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 12:52
Beitrag #15

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Bei der Rotation hast Du aber die "falscher" Datenpunkte am Ende des umsortierten Arrays. Also die früher erfassten Messwerte werden bei der Rotation hinter die später erfassten Messwerte geschoben. Sie gehören in dieser Abfolge nicht zusammen; sind also physikalisch nicht mehr richtig. Messtechnisch kann es anderseits sein, dass der Unterschied nicht relevant ist, weil sich der Triggerzeitpunkt vernachlässigbar verschiebt und die Signale sehr ähnlich sind, so dass man die Rotation einsetzen könnte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 13:19
Beitrag #16

tinger Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: May 2010

2009
2010
de


Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Also erstmal Danke an unicorn und Lucki fürs Gedanken machen!

Ihr habt auch beide Recht. An das "sortieren" durch rotieren habe ich noch nicht gedacht und eigentlich wollte ich die Werte auch physikalisch richtig sortieren. Trotzdem wäre es vielleicht eine Notlösung, die man ausprobieren könnte. Also Danke für diesen Hinweis!

Der Datenstrom soll kontinuierlich sein.
Das speichern der Daten ist auf jeden Fall eine Engstelle (auch wenn hier noch etwas gerechnet wurde und die Datenmenge dann nicht mehr so groß ist). Gespeichert wird aber nur optional und dann für begrenzte Zeit, so dass die Queues das abfangen. D.h. das ist nicht die Engstelle die jetzt allgemein Probleme macht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.01.2011, 18:12
Beitrag #17

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
' schrieb:Bei der Rotation hast Du aber die "falscher" Datenpunkte am Ende des umsortierten Arrays.
Ich habe mich an die Beispiele in #6 von tinger gehalten. Schrotti hat dazu in #7 zu den Beispielen passend die Lösung präsentiert, von der tinger aber aber sagt, so sei das nicht gewollt. Und statt das Ergebnis von Schrotti zu korrigieren, was das Einfachste gewesen wäre und definitiv Klarheit gebracht hätte, wird irgendwas drum herum erklärt, was ich nicht verstehe. Also wenn es so weiter geht, dann wird der Thread noch lang. Ich liebe solche Threads, wo sich der Frager mit Informationen immer so bedeckt wie möglich hält - angefangen beim fehlenden VI.^_^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 18:12
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
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
' schrieb:Bei der Rotation hast Du aber die "falscher" Datenpunkte am Ende des umsortierten Arrays.
Ich habe mich an die Beispiele in #6 von tinger gehalten. Schrotti hat dazu in #7 zu den Beispielen passend die Lösung präsentiert, von der tinger aber aber sagt, so sei das nicht gewollt. Und statt das Ergebnis von Schrotti zu korrigieren, was das Einfachste gewesen wäre und definitiv Klarheit gebracht hätte, wird irgendwas drum herum erklärt, was ich nicht verstehe. Also wenn es so weiter geht, dann wird der Thread noch lang. Ich liebe solche Threads, wo sich der Frager mit Informationen immer so bedeckt wie möglich hält - angefangen beim fehlenden VI.^_^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 18:12 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2011 18:12 von schrotti.)
Beitrag #19

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
Ja, da habe ich dich wirklich falsch verstanden. Du kannst eigentlich nur probieren und probieren. Am besten ist immer, verschiedene Möglichkeiten in eigenen VIs umzusetzen und dort direkt mit Dummy-Daten die Performance ermitteln. Bevor ich aber irgendwas mit allen Mitteln versuch zu programmieren, da überleg ich mir schon, obs nicht ein besseres Konzept gäbe.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 19:26 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2011 19:41 von Lucki.)
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
Geschwindigkeitsproblem: großes array an trigger teilen und sortieren
' schrieb:Ja, da habe ich dich wirklich falsch verstanden.
Wieso falsch verstanden? Du hast die Beispieldaten mit Beispiel-Ergebnisse für bare Münze genommen, ewas Anderes konntest Du doch gar nicht tun. Ein ganz andere Frage, die aber damit nichts zu tun hat, ist, ob deine Löung die gewünschte Perfomance bringt.
Es gibt ja bei diesen Daten mit dem Trigger irgendwo in der Mitte nur 2 Möglichkeiten:
Enweder: Die Daten sind so angeordnet wie sie aufgenommen wurden. Dann sind sie bereits zeitlich richtig sortiert und jedes umsortieren zerstört die zeitlich monotone Reihenfolge.
Oder: Das Datenarray ist ein Rinpuffer. Unmittelbar nach dem Trigger (rechts davon, höherer Index) ) ist der älteste Wert, der vor dem Triger befindlicher Wert ist der neueste. Dann kann man das Array durch innere Rotation in die zeitlich monotone Reihenfolge bringen. Davon war ich ausgegangen.
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
  1D-Array sortieren Fuchs 6 4.068 09.03.2021 16:27
Letzter Beitrag: Fuchs
  Spektren mit For-Schleife sortieren und in Array schreiben Daniel100 2 3.949 03.09.2016 08:25
Letzter Beitrag: Lucki
  Messdaten in 3D Array speichern und sortieren andrepf 8 7.529 08.04.2016 10:12
Letzter Beitrag: jg
  Array Sortieren aw 4 4.264 10.03.2015 14:22
Letzter Beitrag: aw
  2D Array sortieren machfax 12 12.603 06.02.2014 19:33
Letzter Beitrag: Trinitatis
  2D-Array nach einer Spalte sortieren wolfmichael 4 11.247 06.02.2014 15:50
Letzter Beitrag: Trinitatis

Gehe zu: