Messwerte Speicherbedarf

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Lightsource.

    Messwerte Speicherbedarf

    Ich erfasse serielle Messwerte von einem Arduino. Das sind Werte mit Vorzeichen und 2 Nachkommastellen.
    Darum erfasse ich sie als Single. Zusätzlich will ich die Messnummer, sowie Timestamp erfassen.
    Die Messung soll einige Zeit laufen, und Messwerte grafisch darstellen. Das funktioniert auch so weit.

    Meine Frage ist nun: Kann ich herausbekommen, wie viel Speicher, dass meine Collection verbraucht,
    um ab und zu die Daten auf die Festplatte zu speichern?
    Ich kann natürlich auch dauern speichern, möchte aber Messpunkte im RAM behalten, um auf der
    Grafik auch mal in die Vergangenheit zu schauen.

    Wie würdet ihr das machen?
    @Lightsource Wenn Du mit mehreren Threads arbneitest, kannst Du im GUI-Thread alles darstellen und in einem Nebenthread die Werte speichern.
    Das physische Auf-Platte-Speichern passiert dann bei einem .Flash(), den kannst Du ja einrichten, wie es Dir genehm ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du meintest Flush der Schnittstelle?

    Gibt es eine Möglichkeit festzustellen, wieviel Speicher meine Collection gerade benötigt?
    Es scheint da ja Grenzen zu geben, einmal ja wahrscheinlich über den Pointer (Long?)
    und dann wahrscheinlich auch die Bytebreite der Inhalte. Bevor ich einen Speicherüberlauf
    bekomme, könnte ich dann die nächste Collection bzw. File anlegen.
    Wäre es z.B. sinnvoll Single-Messwerte wie der Wert -2.45 grundsätzlich selbst in Integer -245 umzuwandeln?
    Man kann ihn ja beim Einlesen von der Platte wieder durch 100 dividieren.

    Lightsource schrieb:

    Du meintest Flush der Schnittstelle?
    Nein, ich meine beim Speichern auf Platte.
    Das Konvertieren nach Integer macht Sinn, dann nimm aber gleich Short, wenn es die Werte erlauben.
    Von wie vielen Werten reden wir hier?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!