Meinhart_E.Steil schrieb: Das Problem welches dabei auftritt: Meine Verbraucherschleife nimmt mit zunehmender Datenmenge eine geringere Frequenz an.
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ß
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äslt Du dich leider bedeckt.