Viele Daten - wie handeln
-
Hallo,
ich wollte mal die Meinung von Anderen zu meinem "Problem" hören.
Ich habe eine große Menge Daten über die ich einen Algorithmus laufen lassen möchte und das halbwegs effizient - also nicht gerade direkt von der Platte lesen und zurück schreiben.
Bei den Daten handelt es sich um 3D-Punkte, die ich von einem anderen Programm bekomme (aktuell noch als Datei - später als Datenstrom übers Netzwerk). Die Punkte werden mir als ein Trippel aus Int übergeben, mit Komma oder was beliebigen getrennt. Die Datenmenge beläuft sich auf mindestens 150.000 bis sagen wir mal 1.000.000 Punkte oder vielleicht auch in Ausnahmen mehr.
Hat jemand eine Idee wie ich die Daten am besten nutzen kann?Die Daten werden zunächst einmal für Testzwecke auch zum darstellen verwendet, die Daten werden gelesen, verändert und zurück geschrieben natürlich. Ein direkter Zugriff auf einen bestimmten Wert ist bisher nicht nötig - die Abarbeitung wird vorerst hoffe ich nur sequenziell passieren.
So - nun bin ich mal gespannt über die Vorschläge - gerade was die Datenmenge angeht bin ich mir unsicher.
Grüße
Alex
-
Dieser Thread wurde von Moderator/in Marc++us aus dem Forum MFC (Visual C++) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Viele Daten - wie handeln
Dein Titel ist irrefuehrend. Es geht wohl nicht darum, Daten zu kaufen oder zu verkaufen.
Hat jemand eine Idee wie ich die Daten am besten nutzen kann?
Wahrscheinlich niemand, da du nicht sagst, wie oder was du mit den Daten machen moechtest oder welche Anforderungen (z.B. Performance, Plattform, Speicher) an das Programm gestellt sind.
Trippel aus Int .. 1.000.000
1'000'000 x 3 x 4 Byte = 12'000'000 Byte also etwa 12 MByte. Alle Daten einlesen, bearbeiten und wieder rausschreiben. Ab 50'000'000 Punkte wuerde ich es vielleicht anders machen.
-
Alex82 schrieb:
Die Datenmenge beläuft sich auf mindestens 150.000 bis sagen wir mal 1.000.000 Punkte oder vielleicht auch in Ausnahmen mehr.
Hat jemand eine Idee wie ich die Daten am besten nutzen kann?So - nun bin ich mal gespannt über die Vorschläge - gerade was die Datenmenge angeht bin ich mir unsicher.
Was spricht dagegen, alle Daten komplett im RAM zu halten? 1 Mio. Punkte ergibt ein paar Megabytes, das ist heute keine große Datenmenge mehr.
Welche Datenstruktur geeignet ist, hängt im Grunde nur davon ab, was du mit den Punkten machen möchtest.
-
Einfach alle Daten einlesen und dann verarbeiten.
Wenn es um jede Millisekunde geht, blockweise einlesen und in einem zweiten Thread nebenher verarbeiten.
Der Einfachheit halber kannst du am Ende alles aufs Mal zurückschreiben.