[mkgmap-dev] Idea: map layers (multiple output tiles per input tile)
From Marko Mäkelä marko.makela at iki.fi on Fri Apr 15 22:23:03 BST 2011
On Sun, Apr 10, 2011 at 09:18:00PM +0200, WanMil wrote: >> On Sun, Apr 10, 2011 at 07:42:53PM +0200, WanMil wrote: >>> * The advantage to create multiple img files in one mkgmap run is that >>> parsing and preparing of the OSM data must happen once only. Do you >>> have numbers how many percent of the time is used for these steps? >> >> No, I haven't collected any profiling data yet. Which tool would you >> recommend? For C and C++, which is what I have mainly been developing >> in, I have been using OProfile and before that, gprof. Which Java tools >> would come closest? > >I would add some time logging to the mkgmap source code. There are >profiles for Java but I think they are not useful for such a job. I made an experiment. Generating the full map with the default style from 9 osm.gz tiles on a dual-core machine took some 7 minutes, with assertions enabled. With assertions disabled, generating a routes layer of the whole Finland takes about 2.5 minutes when parsing the whole country extract in osm.pbf (one input tile, thus one core used). I repeated this test for 5 layers, which I split from the currently rather useless --style=routes. These styles were routes-foot (route=foot|route=hiking), routes-bicycle, routes-bus, routes-rail (route=subway|route=train|route=tram), and routes-ferry. I did not generate routes-ski or routes-road. Each of these 5 minimal styles would spit out a number of multipolygon error messages, even though the styles are this simple: cat > relations << EOF type=route & route=ferry { add ref='${name}'; # if ref is missing, use name set ref='${network} ${ref}' | '${ref}' | '${network}'; apply { set mkgmap:route='$(mkgmap:route),${ref}' | '${ref}' } } EOF cat > lines << EOF mkgmap:route=* { name '${mkgmap:route}' } [0x1b resolution 20] EOF I think that 2.5 minutes for these simple layers is too much. Because the processing time per layer did not vary much, no matter how much data was generated (13312 bytes .img of ferry routes, 986624 bytes of bus routes), I would guess that parsing is dominating the execution time, and the processing time would reduce from N*2.5 minutes to about 2.5 minutes if we implemented a 'multiple output tiles from one input tile' feature. Do you have any hints where to add the "poor man's profiler" timestamp printouts to the mkgmap source code? Marko
- Previous message: [mkgmap-dev] Idea: map layers (multiple output tiles per input tile)
- Next message: [mkgmap-dev] Idea: map layers (multiple output tiles per input tile)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list