Danke für den Tipp, Peda.
Mittels “-Xmx700M” und fast keinen swappen scheint es zu funkionieren:
$ ulimit -Sn
4096
$ ulimit -Hn
10240
$ ./mapsplit ./mittelfranken.osm.pbf /tmp/tile -s=4000000,500000,200000
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
Compressed buffers are too short, causing extra copy
$ echo $?
0
$ ls -l tile43*| wc -l
1175
Interessant ist, das ein aus mittelfranken.osm.pbf per osmconvert geschnittenes Nürnberg nicht funktioniert:
$ ./mapsplit ./Nürnberg.osm.pbf /tmp/nbg -s=4000000,500000,200000
Exception in thread "Thread-0" java.lang.ArrayIndexOutOfBoundsException: -1
at HeapMap.update(HeapMap.java:188)
at MapSplit.addWayToMap(MapSplit.java:198)
at MapSplit.access$200(MapSplit.java:50)
at MapSplit$1.process(MapSplit.java:288)
at crosby.binary.osmosis.OsmosisBinaryParser.parseWays(OsmosisBinaryParser.java:172)
at crosby.binary.BinaryParser.parse(Unknown Source)
at crosby.binary.BinaryParser.handleBlock(Unknown Source)
at crosby.binary.file.FileBlock.process(Unknown Source)
at crosby.binary.file.BlockInputStream.process(Unknown Source)
at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:37)
at java.lang.Thread.run(Thread.java:636)
Exception in thread "main" java.io.IOException: Could not read file fully
at MapSplit.setup(MapSplit.java:318)
at MapSplit.run(MapSplit.java:453)
at MapSplit.main(MapSplit.java:606)