java.lang.OutOfMemoryError

Wenn mal etwas nicht klappt ...
Antworten
Gast

java.lang.OutOfMemoryError

Beitrag von Gast »

[cheese-2402 schrieb am 16.05.14 14:16]
Hallo,

ich bin gerade dabei, mir meine eigene Karte zu bauen und habe damit Probleme.

Folgendes System:
Intel Core i7
16GB Ram
250GB SSD
Windows 8.1 Pro x64

Da ich Probleme mit Downloadabbrüchen mit MapComposer habe, habe ich mir die
europe-latest.osm.pbf heruntergeladen und in ein Verzeichnis gelegt.

Als Region verwende ich Länge 5.8 - 15.1 und Breite 47.2 - 55.0, Datenquelle
ist Lokale OSM-Datei und die Lokale Datei ist meine downgeloadetes File.

Aufruf ist -Xmx 14000.

Beim Generieren passiert dann Folgendes:
In der Statusleiste steht "Analysiere Daten für Deutschland" (Deutschland ist
der Name meiner Region), der Ram läuft hoch bis 14.142 MB, Prozessorlast bei ca
77% und nach ca 10 Minuten erscheint in der CommandLine folgende Meldung,
danach geht die Rechenlast auf 0% und es tut sich nix mehr. Lösung?

Exception in thread "AWT-EventQueue-0" Exception in thread "pool-1-thread-2"
jav
a.lang.OutOfMemoryError: Java heap space
at nop.osm.pbf.PbfBlobDecoder.processNodes(PbfBlobDecoder.java:289)
at nop.osm.pbf.PbfBlobDecoder.processOsmPrimitives(PbfBlobDecoder.java:3
95)
at nop.osm.pbf.PbfBlobDecoder.runAndTrapExceptions(PbfBlobDecoder.java:4
15)
at nop.osm.pbf.PbfBlobDecoder.run(PbfBlobDecoder.java:438)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.OutOfMemoryError: Java heap space
at sun.java2d.SunGraphicsEnvironment.createGraphics(Unknown Source)
at java.awt.image.BufferedImage.createGraphics(Unknown Source)
at java.awt.image.BufferedImage.getGraphics(Unknown Source)
at sun.swing.CachedPainter.paint0(Unknown Source)
at sun.swing.CachedPainter.paint(Unknown Source)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkinRaw(Unknown Sou
rce)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(Unknown Source
)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(Unknown Source
)
at com.sun.java.swing.plaf.windows.WindowsIconFactory$CheckBoxIcon.paint
Icon(Unknown Source)
at javax.swing.plaf.basic.BasicRadioButtonUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.CellRendererPane.paintComponent(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[Nop schrieb am 16.05.14 21:58]
Was steht beim Job, zweiter Reiter Parameter, unter "Nodecache"?

Ein Europafile ist schon ziemlich groß für den Anfang, vielleicht solltest Du
es erst mal nur mit Deutschland probieren.

bye, Nop
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[cheese-2402 schrieb am 16.05.14 22:16]
Beim Nodecache habe ich mich am Standard gehalten und nix verändert, es steht
auf 1000.

Ich versuche mit gerade an Deutschland, ich würde mir aber gerne eine passende
Karte konfigurieren und mir dann auf mein Oregon aufspielen, je nachdem wo ich
die nächste Tour plane. Deshalb würde ich gerne die Europa.pfb hernehmen, die
Längen/Breitenangabe ist aber von Deutschland. Aber anscheinend zerpflückt er
hier zuerst mal die ganze Datei bzw bleibt daran hängen. Deutschland.osm
schlägt er mir bei den Koordinaten gar nicht mehr vor...

Ich habe jetzt mal die Xmx auf 32000M hochgeschraubt, also das Doppelte vom
Ram, jetzt ist er zumindest schon mal 4 Stunden ohne Probleme gelaufen, ob er
noch was macht weiß ich aber nicht.

Was würde passieren, wenn ich die Deutschland.osm nehme und mit den Koorinaten
laufen lasse? Wäre für mich ne alternative, wenn ich dann auch für Österreich,
Schweiz, Tschechei und Italien auch die entsprechenden Karten bauen könnte...
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[Nop schrieb am 18.05.14 10:50]
Theoretisch sollte er mit der Nodecacheeinstellung durchlaufen - ich hab es
aber nie mit so einer Riesendatei versucht.

Wenn Du sagst "Lokale OSM Datei" dann nimmt er genau diese Datei, alslo ganz
Europa, sie wird nicht mehr geschnitten.

Du solltest "Planetfile" wählen, dann werden nur Deine Koordinaten
ausgeschnitten und Du hast viel weniger Holz zu verarbeiten. Wenn Du sie nicht
nochmal downloaden willst, kopiere Deine Datei einfach in das Verzeichnis das
unter "Einstellungen/Allgemein/Eingangsverzeichnis" eingestellt ist und setzte
die Toleranz "Update alle X Tage" entsprechend hoch.

Den Java Heap größer einzustellen als der tatsächliche Speicher sollte Deine
Kiste nur unsäglich langsam machen oder gar nicht durchlaufen.

bye, Nop
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[cheese-2402 schrieb am 18.05.14 13:23]
Hallo Nop,

ganz verstehe ich es aber dann nicht...

Wenn ich mit meinen Koordinaten auf Planetfile gehe, dann empfielt er mir
Europa. Diese gibt er mit 9GB im Download an, wenn ich mir aber dann die
gedownloadete Datei im Input-Verzeichnis anschaue, hat die 770MB. Ich bin immer
davon ausgegangen, dass die komplette Datei heruntergeladen wird und dann erst
geschnitten. Liege ich da falsch?

Ich habe die Java-Einstellungen wieder auf 14000M wieder zurückgesetzt, damit
er schneller wird.

Ich werde es mal mit deinen Einstellungen versuchen und wieder schauen was
passiert.

Vielen Dank!
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[cheese-2402 schrieb am 18.05.14 13:37]
Hallo Nop,

wenn ich es mit dem Planetfile so mache, dann sieht es so aus wie im Anhang...

Wo liegt das Problem?
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[Nop schrieb am 19.05.14 09:37]
Hallo!

Da sind nur ein paar (willkürliche) Punkte in den Daten. Das kriegt man
eigentlich nur hin, wenn von den fehlgeschlagenen Durchgängen noch alte,
unvollständige Dateien rumliegen.

Stell´ mal "Daten schneiden" auf "immer". Dann sollte er die Daten auf jeden
Fall neu erzeugen. Wenn´s geklappt hat kannst Du´s auf "bei Bedarf"
zurückstellen.

bye, Nop
Gast

Re: java.lang.OutOfMemoryError

Beitrag von Gast »

[cheese-2402 schrieb am 20.05.14 21:21]
So, jetzt gehts.

Ursache waren wohl fehlgeschlagene Downloads und dadurch fehlerhafte
Input-Osm-Daten. Ich habe mir jetzt die Daten heruntergeladen, unter richtigem
Namen ins input-VZ gelegt und lasse von Europa jetzt schneiden. Klappt ohne
Probleme, vielen Dank!
Antworten