Daten performant in Dateien speichern und auslesen



  • Hallo Leute

    Ich habe eine größere Menge an Daten, die während eines Optimierungsprozesses anfallen und öfter gebraucht werden.

    Derzeit kann ich Daten noch im Speicher halten. Aber in Zukunft kommen mehr und mehr Daten dazu, die die Größe meines Arbeitsspeichers von 4GB bei weitem überschreiten.

    Es handelt sich dabei um float-Zahlenreihen mit ca. 3000 Elementen.

    Diese müssten mit einem Identifier versehen werden und dann in Dateien derart gespeichert werden, dass sie performant ausgelesen werden können. Und zwar so performant, dass sich es nicht lohnt, die Datenreihe live zu berechnen.
    Die Komplexität der Berechnungen liegt im Bereich der Grundrechenarten.

    Diese werden in Baumstrukturen benötigt, die hochperformant arbeiten. D.h. eine live-Berechnung treibt die Laufzeit zum aktuellen Zeitpunkt enorm in die Höhe.

    Anmerkungen:
    - Die Datenreihen haben immer die gleiche Länge! D.h. man könnte in der Datei konstante Sprünge machen.
    - Die Datei könnte permanent offen gehalten werden!

    Wie performant können Dateioperationen sein?
    Wie würde man das speichern? binär?

    System: 64Bit Gentoo-Linux, eclipse @ g++, STL, Boost



  • It0101 schrieb:

    Derzeit kann ich Daten noch im Speicher halten. Aber in Zukunft kommen mehr und mehr Daten dazu, die die Größe meines Arbeitsspeichers von 4GB bei weitem überschreiten.

    ...

    System: 64Bit

    Kauf dir mehr RAM



  • Das wird nicht reichen... ich habe schon überlegt, ob ich auf 8GB aufrüste, aber das bringt mich nicht wirklich weiter.

    Im Endeffekt heißt es ohnehin:

    - Live berechnen ( kostet Rechenzeit )
    oder
    - anderswo speichern





  • ok... ich guck mal ob es da ne reine POSIX-Lösung gibt... wenn es Sinn macht, versuche ich boost zu vermeiden.



  • It0101 schrieb:

    Und zwar so performant, dass sich es nicht lohnt, die Datenreihe live zu berechnen.
    Die Komplexität der Berechnungen liegt im Bereich der Grundrechenarten.

    Hört sich so an, als ob von Platte laden auch nicht schneller ist.



  • das müsste ich dann anhand von Performance-Messungen rausfinden 😉



  • Das höchste der Gefühle dürfte das hier sein:

    http://aktien-portal.at/indikatoren.html?sm=cci

    Also gleitende Durchschnitte, bissel Addieren und Multiplizieren...
    Aber dennoch würde ich das für spezielle Berechnungen evtl. mal testen.


Anmelden zum Antworten