PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Strategien


Slater188
2005-08-26, 16:33:40
Hallo Leutz,
ich brauche mal ne seite, oder und ein paar Vorschläge, wie ich möglichst Speichersparend einige zehntausend Datensätze aus Textdateien einlesen und im Speicher halten kann.

mfg
slater

Gast
2005-08-26, 17:45:36
Wenn dir jemand helfen soll, musst du schon konkreter werden.
Welche Art von Datensätzen aus welcher Art von Textdatei?

Shink
2005-08-26, 18:10:09
Verwende den Speicher nur als Zwischenspeicher/Cache: Lies also nur die Datensätze/Dateien, die du brauchst und lass den Rest auf der HDD; was du gelesen hast behältst du im Speicher. Wenn du wieder was liest, schau nach ob es schon im Speicher ist.

Noch besser: Lies einfach nur das, was du brauchst. Eventuell musst du eben deine Dateien (automatisch) umstrukturieren und neu abspeichern.

bulla
2005-08-26, 20:08:09
Hm, was haltet ihr von der Möglichkeit, im Speicher eine Hashtabelle zu errichten, die einmal zu Beginn alle Elemente der Textdatei(en) hasht (z.b. nach Zeilennummern), und anschliessend nur mit der Hashtabelle zu arbeiten.

Slater188
2005-08-26, 21:50:53
Also ich habe 32 Textdateien zum bsp mit den Namen MWB_AKT, MWB_BDA, MWB_BKK etc. insgesamt komme ich etwa auf 10 MB Dateigrösse. JEde dieser Textdateien enthält datensätze..etwa folgender Art: absd~defg~......~zwgh
Dabei verweisen einige dieser Tokens als Fremdschlüssel auf Datensätze anderer Textdateien. Ich muss also die einzelnen Objekte auch noch zusammenfügen. Es ist vorgegeben, dass alle Datensätze in Form von Objekten in den Speicher zu laden sind. Ich habs durchgerechnet...etwa 70.000 Datensätze. Die unterscheidung erfolgt mittels des Reflection-Interfaces...also ich bilde aufgrund der jeweiligen Textdatei einen Konstruktor meiner entsprechenden BuilderKlasse, die aus der Textzeile ein Objekt macht und lege dieses in einem Vektor ab. Eclipse 3.1 arbeitet doch standard mässig mit 64MB zusicherung an java? Ich kann auch erstmal keine DB hintersetzen, dann wäre es nämlich einfach. Welche Infos braucht ihr noch?