Hallo,
wir basteln hier an einem Programm,
welches Daten in eine jdo-object db schreibt.
Dabei ergibt sich folgende Problematik:
Der Speicherbedarf wächst stetig (z.B. durch Durchsuchen der Datenbank) und reicht irgendwann nicht aus.
Dabei macht der Garbage-Collector allerdings keine Anstalten den Speicher wieder freizugeben, auch wenn man ihn drum bittet.
Abhilfe: Beenden des Javaprogramms und erneutes starten.
Dies kann es eigentlich nicht sein, doch wird von uns erstmal so akzeptiert.
Störender finde ich, dass es äußerst langsam vor sich geht.
Grund dafür scheint mir die Hohe Anzahl von Seitenfehlern zu sein. häufig > 1000/sek.
Betriebssystem ist Windows XP Prof XP 64 SP 1
Merkwürdig ist: Die Maschine hat 4GB physischen RAM. Zeigt jedoch im Taskmanager an, dass java 1 GB virtuellen RAM nutzt. Warum bitte virtuellen und nicht physischen ?
Von den 4 GB werden 2,7GB als 'verfügbar' deklariert und 3,6GB als Systemcache
Der Java-Aufruf sieht wie folgt aus:
Hat jmd eine Idee wie sich die Seitenfehler reduzieren lassen und Java den physischen Speicher nutzen kann?
wir basteln hier an einem Programm,
welches Daten in eine jdo-object db schreibt.
Dabei ergibt sich folgende Problematik:
Der Speicherbedarf wächst stetig (z.B. durch Durchsuchen der Datenbank) und reicht irgendwann nicht aus.
Dabei macht der Garbage-Collector allerdings keine Anstalten den Speicher wieder freizugeben, auch wenn man ihn drum bittet.
Abhilfe: Beenden des Javaprogramms und erneutes starten.
Dies kann es eigentlich nicht sein, doch wird von uns erstmal so akzeptiert.
Störender finde ich, dass es äußerst langsam vor sich geht.
Grund dafür scheint mir die Hohe Anzahl von Seitenfehlern zu sein. häufig > 1000/sek.
Betriebssystem ist Windows XP Prof XP 64 SP 1
Merkwürdig ist: Die Maschine hat 4GB physischen RAM. Zeigt jedoch im Taskmanager an, dass java 1 GB virtuellen RAM nutzt. Warum bitte virtuellen und nicht physischen ?
Von den 4 GB werden 2,7GB als 'verfügbar' deklariert und 3,6GB als Systemcache
Der Java-Aufruf sieht wie folgt aus:
C:/j2sdk1.4.1_02/jre/bin/java -Xms1024m -Xmx1024m -XX:+ScavengeBeforeFullGC -XX:
MaxTenuringThreshold=0 -XX:SurvivorRatio=128 -XX:-UseConcMarkSweepGC -cp ".;C:/P
rogramme/objectdb/lib/jdo.jar;C:/Programme/objectdb/lib/odbse.jar" test.eMain "..params..."
Hat jmd eine Idee wie sich die Seitenfehler reduzieren lassen und Java den physischen Speicher nutzen kann?