Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 100 milliarden Werte speichern! (https://www.delphipraxis.net/72165-100-milliarden-werte-speichern.html)

LePtitmort 26. Jun 2006 15:38


100 milliarden Werte speichern!
 
Ich hab da nen Problem ich muss 100.000.000.000 Werte des typs extendend speichern (100 Milliarden also)
lol ich weiss sind ein paar viele...:) mein momentanes Array reicht leider nicht. Kann man Werte über 999.999 im Array nicht speichern? Gibts bessere Methoden zum speichern? (müssen nicht mal verfügbar sein, speichern reicht)

Grüsse lepetitmort
PS: ich wär über etwas "anfänger"-"slang" froh :)

Union 26. Jun 2006 15:40

Re: 100 milliarden Werte speichern!
 
Die Werte kannst Du in einem File of ... speichern oder in einer entsprechend dimensionierten Datenbank.

alcaeus 26. Jun 2006 15:41

Re: 100 milliarden Werte speichern!
 
Die Frage ist wohl eher: wovon musst du 1 Milliarde Werte speichern, und warum? Das ist eine Masse die....sich gewaschen hat :shock:

Greetz
alcaeus

JasonDX 26. Jun 2006 15:42

Re: 100 milliarden Werte speichern!
 
hmmm, 100.000.000.000 Datensaetze zu 10Byte... gibt 1000000000000 Byte, ca. 976562500KB, = 953674 MB = ca. 931GB
Wo willste das Speichern? :zwinker:

greetz
Mike

zer00 26. Jun 2006 16:18

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von JasonDX
hmmm, 100.000.000.000 Datensaetze zu 10Byte... gibt 1000000000000 Byte, ca. 976562500KB, = 953674 MB = ca. 931GB
Wo willste das Speichern? :zwinker:

greetz
Mike

Floppy? ;)

grz zer00

bit4bit 26. Jun 2006 17:03

Re: 100 milliarden Werte speichern!
 
@ zer00

Das wären dann also 681196 Floppies

Als Anfänger gehst Du aber ziemlich ran ...

zer00 26. Jun 2006 17:12

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von bit4bit
@ zer00

Das wären dann also 681196 Floppies

Als Anfänger gehst Du aber ziemlich ran ...

Wieso Anfänger?

grz zer00

Balu der Bär 26. Jun 2006 17:17

Re: 100 milliarden Werte speichern!
 
Zitat:

PS: ich wär über etwas "anfänger"-"slang" froh

zer00 26. Jun 2006 17:51

Re: 100 milliarden Werte speichern!
 
Ach, jetzt habe auch ich blindes Huhn noch den Postscriptum gesehen.

grz zer00

LePtitmort 26. Jun 2006 18:13

Re: 100 milliarden Werte speichern!
 
ohhh der Dimension war ich mir nicht bewusst. 900 Gb sind woll ein wenig viel. :)

na dann wird halt nur noch jeder 10.000ste wert gespeichert. wirds halt ein wenig ungenau aber das wird schon. Vielen Dank für die Hilfe!






Problem vorerst aufgeschoben!

3_of_8 26. Jun 2006 18:15

Re: 100 milliarden Werte speichern!
 
Worum gehts eigentlich?

Avatar 26. Jun 2006 18:17

Re: 100 milliarden Werte speichern!
 
Wenn das nur zur Ermittlung einer Wahrscheinlichkeitskurve werden soll, dann kann man das auch anders angehen ;)

alzaimar 26. Jun 2006 18:49

Re: 100 milliarden Werte speichern!
 
Wer speichert schon 100 Mrd. Daten? Man speichert doch nur die Bereiche, "in denen etwas los ist", schmeisst also die Messpunkte weg, die "uninteressant" sind. Uninteressante Messpunkte sind die Messpunkte, die sich mit einer -wie auch immer gearteten- Interpolation approximieren lassen. Das ist das alte Spiel der Datenkompression: JPEG zeigt, wie es so geht (Reduktion durch Interpolation).

Bei 2D-Daten kann man diverse Verfahren verwenden.

dizzy 27. Jun 2006 01:19

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von alzaimar
Das ist das alte Spiel der Datenkompression: JPEG zeigt, wie es so geht (Reduktion durch Interpolation).

Mh, kann man glaub ich so nicht stehen lassen, auch wenn es OT ist :). JPEG geht lediglich in einem (kleinen) Teilaspekt mit Interpolation vor: Das Bild wird in das YCC-Format (bzw. YUV) gewandelt, und die beiden Farbkanäle werden (je nach Subformat aber auch nur!) meistens mit halber Größe behandelt. Die Interpolation beim Dekodieren ist meist sogar nur simples Vervielfältigen von Pixeln, da man den Unterschied kaum ohne technische Hilfe erkennen würde.
Der wesentliche Anteil der Kompression nutzt eine Reduktion um hohe Werte im Frequenzraum von Bildteilen aus (da sie wenig zum Bildeindruck beitragen), um dadurch lange 0-Ketten zu erzielen. Diese werden RLE komprimiert, und zum Schluss noch ein Huffman drübergejagt.


Zum Thema: Je nach dem wie die Daten aussehen, und ob du eine Zuordnung zu einer Skala (etwa das zeitliche Auftreten der Werte) machen kannst, wäre noch folgendes denkbar: Du speicherst nur wesentliche Veränderungen zu einem Vorgängerwert ab, und zusätzlich einen Zeitindex (oder was auch immer als Skala dienen kann) um (falls überhaupt nötig) eine skalentreue Rekonstruktion machen zu können.
Das würde allerdings erst effizient werden, wenn zu erwarten ist, dass der Wert nicht schnell oder oft große Differenzen bildet, da ja eine Zusatzinformation her müsste. Vorteil bei dem Vorgehen könnte sein, dass relevante Stellen (oftmals ja bei größeren Wertänderungen) nicht verloren gingen.
Da du uns aber bisher nicht sagen wolltest, was das für Werte sind, ist schlecht einzuschätzen ob das für dich toll ist ;)


Gruss,
Fabian

sir-archimedes 27. Jun 2006 07:55

Re: 100 milliarden Werte speichern!
 
Ähh nur ein ganz kurzer Hinweis: Man teilt bei JPEG das Bild in 8x8 Blöcke auf und führt anschließend eine diskrete Kosinustransformation durch. Diese ist noch gar nicht verlustbehaftet. Man erhält nur eine andere (kompaktere) Darstellung des Bildes - eine 8x8-Matrix, deren Einträge immer kleiner werten je weiter man nach rechts/unten gelangt. Anschließend führt man eine Quantisierung durch - das heißt die Matrix wird passend gerundet - sehr kleine Werte verschwinden. Dann komprimiert man die Matrix geeignet wodurch aber auch keine weitere Information verloren wird.

Bei der Dekodierung macht man das ganze rückwärts, muss aber nicht mehr "durch gleiche Werte" interpolieren - die Blöckchenbildung, die man anschließend erkennt, resultieren aus der Quantisierung die nach der Kosinustransformation stattgefunden hat. Man interpoliert höchstens, wenn man das Bild vergrößert/verkleinert/dreht. Dafür gibt es verschiedene Verfahren, die aber alle nichts mit JPEG zu tun haben.

Generell kann man, wenn man ein Signal hat, prüfen, inwieweit man es glätten kann. Dafür gibt es viele Algorithmen - nicht nur den Mittelwert ;-) Man kann z.B. via Wavelet-Transformation hohe Frequenzen filtern, oder eine Fourier-Transformation durchführen und hohe Frequenzen löschen. Alternativ kann man natürlich Gaussische Filter anwenden, die einen gewichteten Mittelwert berechnen, etc. Der Glättungsalgorithmus der Wahl hängt allerdings stark von dem Signal hat und dem, was man an Details behalten will. Hat man zum Beispiel harte Kanten, bietet sich ein Mittelwertfilter nicht an, da die Kanten stark geglättet und damit weich gemacht werden...

Zu all diesem sollte man jedoch ohne weiteres einiges an Literatur finden!

dizzy 28. Jun 2006 11:17

Re: 100 milliarden Werte speichern!
 
Das war (mir zumindest - hab ja schonmal nen jpeg-Kompressor von Hand gebastelt) bislang bekannt, hat aber im Wesentlichen nichts mit der Ausgangsfrage zu tun ;). Mein kleiner JPEG-Exkurs war nur dazu da, um aufzuzeigen, dass der Fragesteller besser nicht nach JPEG sucht, um damit sein Problem zu lösen, da es keine passende Methode darstellt. Zumindest scheint es so, bei den wenigen Infos die wir haben...

mquadrat 28. Jun 2006 11:21

Re: 100 milliarden Werte speichern!
 
Naja mit ner anständigen SQL Datenbank wären auch mehrere GB Daten kein Problem. Ich seh das Problem eher beim Hauptspeicher falls die Daten alle zeitgleich im Client gebraucht werden.

3_of_8 28. Jun 2006 13:48

Re: 100 milliarden Werte speichern!
 
Ich glaub, der meldet sich nicht mehr.

dizzy 28. Jun 2006 13:50

Re: 100 milliarden Werte speichern!
 
Nunja, eine DB wäre sicherlich am ehesten geeignet um auf den Daten zu operieren. Das eigentliche Problem ist denke ich ersteinmal >900GB Plattenplatz herzubekommen. Jedoch hatte der Fragesteller ja bereits eingeschränkt, dass er die Daten einfach nur hinschreiben muss, und nicht damit arbeiten. Daher wäre ein Filestream meiner Meinung nach ebenso geeignet. Die Frage ist halt nur: Werden alle Daten in voller Genauigkeit benötigt, bzw. gibt es ein mögliches gröberes Raster oder signifikante Sprünge die ausreichen? Weil 900GB sind in nicht-kommerzieller Umgebung nicht mal eben besorgbar (zumindest nicht am Stück).
Zudem ist noch die Frage: Wie schnell kommen die Daten herein? Die Platte müsste damit zumindest Schritt halten können :)

LePtitmort 1. Jul 2006 09:31

Re: 100 milliarden Werte speichern!
 
Also ich schildere alles nochmal einwenig genauer:

Ich schreibe an einem Programm, dass die Planetenbahnen von n-Planeten anzeigen (also zeichnen und berechnen) soll.
Ich berechne momentan 15 Millionen neue Positionen und nochmal so viele Geschwindigkeiten in 15 Sekunden.
Hier das Prog!

Achtung kann sein das die Leute mit ein wenig Arbeitsspeicher ihrem Pc ein jehes Ende setzen.... :-D (lieber die Schrittanzahl runtersetzen)
Wir verwenden momentan noch ein Eulerverfahren und haben so vor den 9./10. Planeten unseres Sonnensystemszubeweisen.
Dazu vergleichen wir berechnete Bahn mit der tatsächlichen.

:?: So jemand sagte das ich die Werte (bzw. jeden 10 000sten) in einer list speichern, wie ich schon sagte ich bin noch nicht ganz so Delhpi-fit. Was hat das für Vorteile?
ich brauch die alt berechneten Werte eigentlich nicht mehr, zumindest nicht regelmässig, ich brauch den letzetn Wert der Berechnung und des wars. Gibts noch andere bessere Metheoden?
:?: Und mein Arbeitsspeicher kommt auch langsam an seine Grenzen... bleiben die Arrays im Arbeitsspeicher gespeichert?
:?: Ein weiteres Prob, das ich hab ist ein Scheibenwischereffekt der Auftritt wenn ich den Planeten mache, er "wischt" über meine Paintbox und löscht somit meine alten Bahnen (natürlich nur die Grafik nicht die berechneten Werte im Array). Und speichern und laden des bildes kommt auch nicht in Frage, auf Grund der grossen Schrittanzahl (monmentan wird jeder 200ste Schritt gezeichnet sh. im Programm unten rechts)
:?: Und noch ein letzten Problem, meine extended Zahlen sind immer noch zu ungenau.... wie kann ich noich grössere Genauigkeit bekommen?
:?: Mein Array ist momentan 10 x 10 x 999 999 gross (vom typ "extended") und wenn ich jetzt mein Array löschen will
(bzw. genauer gesagt leeren oder überll ne 0 reinschreiben) dauert das ewig, gibts da nen Trick wie man das beschleunigen kann? irgendein schneller Befehl? weil mit ner for-Schleife einfach durchlaufen lassen dauerts eindeutig zulange.

ich würde mich riesig über Tipps und kongrete Quelltext-ideen freuen.
[weiterhin Vertreter des "Delphi-Anfänger-slangs"]

[edit]:
Das Programm kann nur einmal gestartet werden, weil des array nomentan nicht gelöscht wird, muss des programm einfach neu gestartet werden:
-also "günstige werte" klicken, damit unser Sonnen system berechnet wird
-dann "berechnen"
-dann ankucken :)
-dann schliesen
-dann nochmal starten und wieder von vorne anfangen

Jelly 1. Jul 2006 09:38

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von LePtitmort
:?: Mein Array ist momentan 10 x 10 x 999 999 gross (vom typ "extended") und wenn ich jetzt mein Array löschen will
(bzw. genauer gesagt leeren oder überll ne 0 reinschreiben) dauert das ewig, gibts da nen Trick wie man das beschleunigen kann? irgendein schneller Befehl? weil mit ner for-Schleife einfach durchlaufen lassen dauerts eindeutig zulange.

Das sollte so gehen:
Delphi-Quellcode:
type
  TArr = array[1..10,1..10,1..1000] of extended ;
var
  Arr : TArr ;

procedure LoescheArr (Arr : TArr) ;
begin
     FillChar (Arr,sizeof(Arr),0) ;
end;

Flare 1. Jul 2006 09:41

Re: 100 milliarden Werte speichern!
 
Gib bei diesem Programm mal bitte sinvollere Startparameter an, da ich nicht weiß wo ich Nullen lassen kann und wo nicht, bei mir kommt pro Sekunde 4 mal (oder auch öfter) ne DivByZero Meldung :?


Flare

Jelly 1. Jul 2006 09:51

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von Flare
Gib bei diesem Programm mal bitte sinvollere Startparameter an, da ich nicht weiß wo ich Nullen lassen kann und wo nicht, bei mir kommt pro Sekunde 4 mal (oder auch öfter) ne DivByZero Meldung :?

Auf welchen Beitrag ist das bezogen :gruebel:

Flare 1. Jul 2006 09:54

Re: 100 milliarden Werte speichern!
 
Das ist auf LePtitmort bezogen...


Flare

LePtitmort 1. Jul 2006 09:57

Re: 100 milliarden Werte speichern!
 
einfach auf günstige werte klicken!

Flare 1. Jul 2006 10:04

Re: 100 milliarden Werte speichern!
 
Geht klar :thumb: Nur wenn ich dann nochmal auf "Berechnen und zeichnen" klicke, macht er kompletten Blödsinn ^^
Normalerweise müsste er ja das selbe Bild nochmal zeichnen, das ist aber nicht annähernd so!
Und diese DivByZero-Meldungen kamen bei mir nach dem 3. oder 4. mal "Berechnen ..." klicken wieder.


Flare

Der_Unwissende 1. Jul 2006 10:22

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von LePtitmort
:?: So jemand sagte das ich die Werte (bzw. jeden 10 000sten) in einer list speichern, wie ich schon sagte ich bin noch nicht ganz so Delhpi-fit. Was hat das für Vorteile?

In deinem Fall gar keine. Eine Liste ist einfach nur eine dynamische Datenstruktur, die Länge ist zu keinem Zeitpunkt festgelegt. Du kannst dir anschauen wie viele Elemente sich gerade in dieser Liste befinden, aber auch noch beliebig viele (soweit Speicher vorhanden) hinzufügen und wieder entfernen.

Zitat:

Zitat von LePtitmort
ich brauch die alt berechneten Werte eigentlich nicht mehr, zumindest nicht regelmässig, ich brauch den letzetn Wert der Berechnung und des wars. Gibts noch andere bessere Metheoden?

Aber ja, denke ein paar wurden hier schon angesprochen. Wichtig ist es, das du nicht alles im Speicher hälst was du nicht brauchst. Dazu gleich mehr.

Zitat:

Zitat von LePtitmort
:?: Und mein Arbeitsspeicher kommt auch langsam an seine Grenzen... bleiben die Arrays im Arbeitsspeicher gespeichert?

Jede deiner Variablen landet im Arbeitsspeicher. Ein Array versucht sogar seinen kompletten Platz in einem Stück im Arbeitsspeicher zu finden. Ist dein Array nur groß genug, ist der Arbeitsspeicher sofort überfüllt (und es geht mit virtuellem Speicher weiter). Listen ändern daran auch wenig (aber hier nicht weiter wichtig).
Wenn du nur einen Wert (den letzten) benötigst, dann solltest du dir nur eine Variable anlegen und dort rein speichern. Damit sollten sich all deine Hauptspeicherprobleme lösen lassen.

Zitat:

Zitat von LePtitmort
:?: Und noch ein letzten Problem, meine extended Zahlen sind immer noch zu ungenau.... wie kann ich noich grössere Genauigkeit bekommen?

Mit einem normalen Prozessor wird das schwierig. Extended hat eine etrem hohe Genauigkeit für einen Computer. Für einen Rechner ist es nicht ganz so trivial Zahlen in einer hohen Genauigkeit zu speichern. Man hat einfach nur begrenzt viele Bits, die man für eine Zahl verwenden möchte. Da mit diesen Zahlen in extrem optimierten Einheiten (also jetzt Hardware) gerechnet wird, kannst du die Anzahl der Bits auch nicht beliebig für jede Zahl ändern. Es gibt zwei Möglichkeiten, Festkommazahlen (die Genauigkeit ist durch eine feste Anzahl von Nachkommastellen gegeben), was für hohe Genauigkeit einen extrem hohen Platzbedarf impliziert und Gleitkommazahlen. Diese berechnen sich auf eine etwas weniger intuitive Art und Weise. Ich möchte hier nicht auf das Rechnen mit Mantissen eingehen, aber wichtig ist, dass du nur eine ungefähre Genauigkeit hast. Gleitkommazahlen werden natürlich ebenfalls durch konst. viele Bits kodiert, aber die abgespeicherte Genauigkeit ist flexibel. Es gibt Zahlen (z.B. die 0) die lassen sich gar nicht direkt kodieren. Wenn man nun auch noch zwei solcher Zahlen Addiert, dann folgt auch dies sehr speziellen Regeln (durch die Art der Speicherung). Hierbei dominieren große Zahlen kleinere total. Ein Beispiel wäre es, dass du 1000 sehr sehr kleine Zahlen (<< 1) mit einer anderen Zahl (z.B. der 1) addieren möchtest.
Würdest du die Zahlen so addieren, dass du jede der 1000 Zahlen nach einander zur 1 hinzu addierst, wäre dein Ergebnis = 1, würdest du die Zahlen hingegen aufsteigend summieren (immer die beiden kleinsten, bis du die Summe über alle 1000 hast), dann wäre dein Ergebnis sehr viel genauer z.B. 1,0273.
Das Problem ist einfach, dass du dich bei der Gleitkommadarstellung auf die verwendeten Nach- und Vorkommastellen festlegen musst. Möchte wie gesagt nicht näher darauf eingehen, ist einfach so (findest du ganz schnell bei Google, wikipedia, ...)

Was das Speichern deiner Werte angeht, so solltest du sie tunlichst nicht im Speicher lassen. Wie du sie wohin bannst ist eigentlich egal. Es gibt ein Menge Möglichkeiten, die einfachsten und sinnvollsten wären Datenbanken oder Streams (Beides hier schon angesprochen). Wenn du einen FileStream verwendest, so werden die Daten direkt auf die Festplatte geschrieben. Natürlich mögen 900 GByte etwas sehr groß sein, aber es gibt natürlich auch für Delphi einfache zip-Komponenten, die dürften schon einiges kleiner kriegen. Du solltest allerdings auch hier Versuchen die einzelnen Dateien nicht zu groß zu machen. Insbesondere wenn du nicht regelmässig auf die Daten zugreifst, solltest du dir überlegen ob du die Werte nicht in viele (sinnvolle) kleine Portionen packen kannst (z.B. wären 10^6 Werte mit 10 Byte kodiert etwas unter 10 MByte groß, dass lässt sich dann sicher auch schnell entpacken und zur Verwendung auch mal kurz im Speicher halten ohne das es Probleme gibt).

Gruß Der Unwissende

Luckie 1. Jul 2006 10:27

Re: 100 milliarden Werte speichern!
 
Ein kleiner Denkanstoss: Wenn die Berechnung nicht sehr lange dauert, wäre zu überlegen, ob man nicht nur die Werte speichert, die man zur Berechnung braucht. Siehe dazu auch: http://blogs.msdn.com/oldnewthing/ar...20/327369.aspx

Hawkeye219 1. Jul 2006 10:30

Re: 100 milliarden Werte speichern!
 
@Jelly
In der Prozedur LoescheArr löschst du leider nur die lokale Kopie des Arrays. Besser so:

Delphi-Quellcode:
procedure LoescheArr (var Arr: TArr); // <-- VAR-Parameter!
begin
  FillChar (Arr, SizeOf(Arr), 0) ;
end;
@LePtitmort
Bei der Verwendung einer PaintBox solltest du nur innerhalb der Methode OnPaint zeichnen. Siehe dazu auch diesen Beitrag.

Gruß Hawkeye

LePtitmort 1. Jul 2006 12:42

Re: 100 milliarden Werte speichern!
 
Wowow. super Tipps tolle Ideen bereits dabei.

Union 1. Jul 2006 13:32

Re: 100 milliarden Werte speichern!
 
Hallo,

gehe ich recht in der Annahme, dass die gespeicherten Werte 3D-Koordinaten sind? Wie wäre es dann, wenn Du nur die Vektoren speicherst? Dafür könntest Du Dir einen Record bilden. Es werden im Array die Records gespeichert. Diese enthalten den X/Y/Z Offset zur vorherigen Position im Koordinatensystem. Wenn Du den Maßstab und die Schrittweite geschickt wählst, könntest Du pro Wert dann sogar mit einem Byte auskommen(-128..127). Du brauchst dann nur noch den Startpunkt in "voller Auflösung" zu speichern.

Beispiel:

Delphi-Quellcode:
type
   TOffset = record
     XDiff, YDiff, ZDiff : shortint;
   end;

LePtitmort 1. Jul 2006 14:49

Re: 100 milliarden Werte speichern!
 
Es sind zwar 3d-koordinaten die aber nicht primär zur Zeichnung genutzt werden sonder zur Berechung und daher eine sehr genau sei müssen aber danke... :thumb:

Flo85 1. Jul 2006 14:52

Re: 100 milliarden Werte speichern!
 
Zitat:

Zitat von Union
Diese enthalten den X/Y/Z Offset zur vorherigen Position im Koordinatensystem. Wenn Du den Maßstab und die Schrittweite geschickt wählst, könntest Du pro Wert dann sogar mit einem Byte auskommen(-128..127). Du brauchst dann nur noch den Startpunkt in "voller Auflösung" zu speichern.

Glaube das es nicht so einfach ist einen geeigneten maßstab zu finden wo ein byte reicht. aber die idee ist recht gut. man solte nur aufpassen wenn "Rundungsfehler" dabei sind die jedes mal dazukommen

Union 1. Jul 2006 14:57

Re: 100 milliarden Werte speichern!
 
Das stimmt. Aber das sicher sagen zu können, müsste man entweder den verwendeten Algorithmus kennen oder eine represäntative Ergebnis-Zahlenreihe (nicht unbedingt eine mit 100 Mrd. Einträgen ;)). Oder man läßt sich während eines Programmlaufes die maximalen/minimalen Werte ermitteln und legt das Koordinatensystem darauf hin fest.

@LePtitMort: Welche Auflösung verwendest Du denn für die Berechnung?

LePtitmort 1. Jul 2006 15:13

Re: 100 milliarden Werte speichern!
 
ich verwende extendedzahlen und selbst das ist zu ungenau... aber bis jetzt sagte mir jeder das eien ausweitung über extended sehr umständlich ist... deswegen bleib ich dabei.

Union 1. Jul 2006 15:15

Re: 100 milliarden Werte speichern!
 
Nein, ich meinte jetzt damit die dargestellte Maßeinheit (z.B. km, ly usw.)

Nikolas 1. Jul 2006 15:22

Re: 100 milliarden Werte speichern!
 
Das Problem klingt richtig interessant. Könntest du vielleicht mal sagen, was du eigentlich machen willst und wie die Daten aussehen? Wahrscheinlich könnte man so den verwendeten Algo verbessern und käme auf eine einfachere Speichermethode.

Olli 1. Jul 2006 15:43

Re: 100 milliarden Werte speichern!
 
Wie wäre es, wenn du - wie bei diversen Bildkompressionsverfahren - jeweils eine Differenz speicherst. U.U. sind dann die Zahlen nicht mehr so groß. Auch gäbe es sicher noch andere Methoden die Daten sinnvoll und dennoch effektiver zu speichern ohne gleich auf rechenzeitintensive Komressionsverfahren zu setzen.

LePtitmort 1. Jul 2006 15:54

Re: 100 milliarden Werte speichern!
 
@Toxmen: seite2 Mitte steht um was es geht. würde mich freuen wenn du Neuigkeiten hast
@Union : geschindigkeiten in m/s und Positionen in m, aber spielt auch keine Rolle, da die zahl 123456,7 gleich vielspiechern brauch wie die zahl 1,234567
@olli wäre ein Versuch wert das stimmt.

Nikolas 1. Jul 2006 16:45

Re: 100 milliarden Werte speichern!
 
Wenn du soviele Punkte nicht speichern willst, könntest du versuchen, sie als Funktionen darzustellen. Du könntest z.B. nach einer bestimmten Anzahl an Schritten die Bahn jedes Planeten als Polynom großen Grades zu approximieren, was nicht allzu schwierig sein sollte, oder als Fourierentwicklung. Je nach dem wie die Bahnen aussehen, könnte es vor der approximation sinnvoll sein, in Kugelkoordinaten zu wechseln. Dann hättest du in jeder Komponente Funktionen, die sich gut durch Sinus-terme beschreiben lassen sollten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz