logo separator

[mkgmap-dev] splitter OutOfMemoryError

From Carlos Dávila cdavilam at jemila.jazztel.es on Sat Mar 6 18:07:24 GMT 2010

I have run several times splitter on a 15.1 GB file (actually on cache
from that file) obtained from Srtm2OSM on machine A (Athlon 64 3000 Ghz,
3GB RAM) using the following command:
time java -Xmx2500M -jar splitter.jar --mapid=63240101 --mixed=true
--cache=/160GB/cache_srtm/peninsula/ --max-nodes=4500000
--split-file=areas.list --description="SRTM Map" --overlap=1000
Running the same command on the same data on a new machine B (Athlon II
3000 Ghz dual core, 4GB RAM) I get an OutOfMemoryError. Even increasing
to -Xmx3500M I get the same error, always at the same point.
Running mkgmap on spain.osm from Geofabrik with my usual script I also
had to increase memory.
Machine A java -version:
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)

Machine B java -version:
java version "is 1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7) (6b17-1.7-1)
OpenJDK Server VM (build 16.0-b13, mixed mode)

terminal output:
...
100.000.000 nodes
processed...                                                            
102.500.000 nodes
processed...                                                            
Elapsed time: 10m 0s   Memory: Current 2379MB (1539MB used, 840MB free)
Max 2379MB        
Exception in thread "main" java.lang.OutOfMemoryError: Java heap
space                    
        at
uk.me.parabola.splitter.IntIntMap.ensureSpace(IntIntMap.java:121)              

        at
uk.me.parabola.splitter.IntIntMap.put(IntIntMap.java:73)                       

        at
uk.me.parabola.splitter.SplitIntMap.put(SplitIntMap.java:49)                   

        at
uk.me.parabola.splitter.SplitProcessor.writeNode(SplitProcessor.java:202)      

        at
uk.me.parabola.splitter.SplitProcessor.endNode(SplitProcessor.java:152)        

        at
uk.me.parabola.splitter.BinaryMapLoader.processNodes(BinaryMapLoader.java:96)  

        at
uk.me.parabola.splitter.BinaryMapLoader.load(BinaryMapLoader.java:78)          

        at
uk.me.parabola.splitter.Main.processMap(Main.java:377)                         

        at
uk.me.parabola.splitter.Main.writeAreas(Main.java:366)                         

        at
uk.me.parabola.splitter.Main.split(Main.java:183)                              

        at
uk.me.parabola.splitter.Main.start(Main.java:109)                              

        at
uk.me.parabola.splitter.Main.main(Main.java:98)                                

Command exited with non-zero status
1                                                     
585.92user 11.65system 10:04.55elapsed 98%CPU (0avgtext+0avgdata
9424896maxresident)k     
4919520inputs+1954184outputs (10major+597930minor)pagefaults
0swaps                       
Error at line 2740921, col
57                                                             
Bad file format:
../Srtm2Osm/63240101.osm.gz                                              
Error at line 1627896, col
58                                                             
Bad file format: ../Srtm2Osm/63240102.osm.gz
...
Any ideas about the problem?
Carlos

P.S. Does it make sense to give --overlap to splitter for contour lines
or is it only necessary for routing?



More information about the mkgmap-dev mailing list