Ich lese aus einer Access DB 200.000 Zeilen in ein Vector ein. Ich kriege dann ein Fehler "Out of Memory" obwohl es ausreichende Memory vorhanden ist. Gibt es eine Technik wie man mit so großen Datenmengen umgehen sollte.
Announcement
Collapse
No announcement yet.
Out of Memory
Collapse
X
-
hallo
meines erachtens ist das primär eine frage des designs. wenn ich davon ausgehe, dass diese 200.000 datensätze das resultat einer suche sind, wird sicher kein anwender mit einer derartigen datenmenge glücklich sein, d.h. man sollte das suchergebnis auf eine bestimmte anzahl begrenzen (z.b. 100 datensätze oder so). bei bedarf könnte dann dynamisch jeweils ein weiteres set von daten nachgeladen (also z.b. die nächsten 100) werden.
mfg, rober
-
Hi Leute,
in dem Unternehen in dem ich arbeite werden sogar teilweise nur 10 Sätze gelesen (nicht Java). Die nächsten 10 Sätze werden dann ,wenn der Benutzer diese erst sehen kann, anzeigt. Beim Druck werden dann 10-Satzweise gelesen (10 auf einmal, dann die nächsten 10 usw.)
Da Java aber n bischen mehr verträgt, kann man hier sicher auch grosszügiger sein.
MfG
Tobia
Comment
-
Hallo,
ich stimme im Hinblick auf den Designfehler voll zu. Trotzdem kann es nötig sein, solche Datenmengen verarbeiten zu müssen. Hier hilft die Option an der VM (JDK 1.2)
java -Xmx128m -Xms128m
welche den Stack auf 128 MB hochsetzt. Am JBuilder und VCafe gibt's n spezielles Eingabefeld dafür, irgendwas mit virtual machine parameters suchen.
Achso, denk mal über die neuen Collection-Klassen des JDK1.2 nach. Auch als Addon für 1.1 erhältlich.
c
Comment
Comment