Hallo,
ich hoffe, dass ich hier richtig bin =)
Ich habe eine java.heapSpace problem.
Ich habe eine Anwengung geschrieben, die Daten aus einem Textfile einliest. diese Daten sind Semikolonsepariert und werden zeilenweise eingelesen. bsp:
So, jetzt kann es vorkommen, dass ich Textdateien habe, die 13.000 Zeilen haben. Jede Zeile hat 10 Datensätze. Jeder Datensatz muss validiert werden. also 130.000 Datensätze zu überprüfen.
Habe meiner Anwendung 1,6Gig Ram zugeweisen. Es funktionier auch super soweit. ich schieben eine Textdatei rein, es wird validiert. alles prima.
Schwierig wird es, wenn es mehrere Textdateien sind. Ich habe dann das gefühl das er den speicher nicht schnell genug leer räumt.
Was kann ich da am besten tun?
Also Datei1(13.000 Zeilen) läuft durch. speicher geht auf 1000mb hoch, Datei2(13.000 Zeilen) läuft durhc, 3, bei der vierten ist er dann bei 1590MB und ich kriege eine HeapSpace Exception.
Habe auch das gefühl, das er zwischen den dateien nicht richtig aufräumt.
Habe dem Garbage Collector sogar schon per System.gc() gesagt er solle aufräumen. aber davon merke ich nichts.
Auch, wenn eine Datei abgearbeitet wurde, und die nächste kommt wird der Speicherverbrauch nicht kleiner.
Hier mein Aufruf meiner Anwendung:
Hoffe ihr habt noch nen Tip.
Danke !!
ich hoffe, dass ich hier richtig bin =)
Ich habe eine java.heapSpace problem.
Ich habe eine Anwengung geschrieben, die Daten aus einem Textfile einliest. diese Daten sind Semikolonsepariert und werden zeilenweise eingelesen. bsp:
Code:
Line1;datensatzA;datensatzA;datensatzA;datensatzA;datensatzA;datensatzA;datensatzA;datensatzA;datensatzA;
Line2;datensatzB;datensatzB;datensatzB;datensatzB;datensatzB;datensatzB;datensatzB;datensatzB;datensatzB;
Habe meiner Anwendung 1,6Gig Ram zugeweisen. Es funktionier auch super soweit. ich schieben eine Textdatei rein, es wird validiert. alles prima.
Schwierig wird es, wenn es mehrere Textdateien sind. Ich habe dann das gefühl das er den speicher nicht schnell genug leer räumt.
Was kann ich da am besten tun?
Also Datei1(13.000 Zeilen) läuft durch. speicher geht auf 1000mb hoch, Datei2(13.000 Zeilen) läuft durhc, 3, bei der vierten ist er dann bei 1590MB und ich kriege eine HeapSpace Exception.
Habe auch das gefühl, das er zwischen den dateien nicht richtig aufräumt.
Habe dem Garbage Collector sogar schon per System.gc() gesagt er solle aufräumen. aber davon merke ich nichts.
Auch, wenn eine Datei abgearbeitet wurde, und die nächste kommt wird der Speicherverbrauch nicht kleiner.
Hier mein Aufruf meiner Anwendung:
Code:
java -classpath bin;libs/log4j.jar;libs/mysql506.jar;libs/smooks-1.1.1.jar;-Xmx1600m -Xms1600m -Xmn1200m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=20 -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 src.iotc.gdct.RunConsole
pause
Hoffe ihr habt noch nen Tip.
Danke !!