(15.05.2011 10:43 )Lucki schrieb: Das hat aber nichts mit der größeren Datenmenge an sich zu tun, sondern mit der Art, wie die größeren Datenmengen oftmals - um nicht zu sagen bei Anfängern immer - gesammelt werden.
Die Verlangsamung tritt ein, wenn die neuen Daten jedesmal als neue Elemente an das bestehende Datenarray angehängt wird, so daß sich das Datenarray jedesmal vergrößert. Das ist jedesmal mit einer aufwändigen Reorganisation des Datenspeichers verbunden.
Die Lösung ist: Ein hinreichend großes Array, z.B mit NaN-Werten, vordefinieren und dann die Elemente ersetzen. Beim Abpeichern dann die noch nicht ersetzten Werte löschen.
Oder ab Ver. 9 noch einfacher: Statt while-Schleife for-Schleife mit Bedingungsanschluß verwenden. An die For-Schleife eine genügend große Konstante an N anschließen, Sammeln der Daten mit dem Index-Ausgang. Abbruch immer wann man will wie bei der While-Schleife mit dem Bedingungsanschluß
Gute Idee, ich weiß zwar momentan noch nicht wie lange meine Versuche laufen, ich muss aber letztendlich immer die Frequenz und die Zeitdauer des Versuches parametrisieren und daraus lässt sich ja bequem nen ausreichend dimensioniertes Array vorab erstellen.
(15.05.2011 10:43 )Lucki schrieb: Zur Frage Pufferüberlauf/Verlangsamung der Erzeugung:
Das schließt sich normalerweise gegenseitig aus.
Entweder: Die Daten werden unabhängig vom PC erzeugt, kommen also von einer Messkarte mit eigenem Timer, einem µC-System oder einem externem Gerät - Dann droht die Gefahr eines Puffer-Überlaufes bei nicht genügend schneller Verarbeitung. Die Datenrate bleibt aber aufrechterhalten.
Oder: Die Daten werden softwaremäßig vom PC getriggert oder erzeugt. Dann kann die Datenrate bei nicht genügend schneller Verarbeitung verlangsamt werden, man hat aber dann wahrscheinlich keinen Puffer-Überlauf.
Welche Art der Datenerzeugung bei Dir vorliegt - darüber hält Du dich leider bedeckt.
Hm, momentan laufen im PC aus drei Kraftmessverstärkern Daten über drei RS232 Schnittstellen ein. Ich habe generell zwei Möglichkeiten die Daten dort auszulesen: Der Kraftmessverstärker liefert mir auf Anfrage den letzten erfassten Wert (was aus irgendeinem Grund aber nicht funktioniert) oder es werden alle Werte (momentaner Zustand) per vi erfasst.
Wenn ich jetzt alle Daten in einer Schleife sammle, sammeln sich halt unterschiedlich große Datenmengen an.
VG Marcel